【发布时间】:2018-08-29 07:26:38
【问题描述】:
val(:,:,1) =
0.1068 0.7150 0.6987 0.5000
0.6538 0.9037 0.1978 0.4799
0.4942 0.8909 0.0305 0.9047
0.7791 0.3342 0.7441 0.6099
val(:,:,2) =
0.6177 0.1829 0.4899 0.5005
0.8594 0.2399 0.1679 0.4711
0.8055 0.8865 0.9787 0.0596
0.5767 0.0287 0.7127 0.6820
val(:,:,3) =
0.0424 0.8181 0.6596 0.8003
0.0714 0.8175 0.5186 0.4538
0.5216 0.7224 0.9730 0.4324
0.0967 0.1499 0.6490 0.8253
Row Col
4 1
1 2
3 3
嗨,我想从 3d 数组中获取多个点,但我不知道任何不使用循环的有效方法。我尝试过使用 sub2ind ,但单独处理每个 2d 矩阵似乎不是很有效。
【问题讨论】:
-
向我们展示您已经尝试过的...
-
res = val(row,col,:); -
index = sub2ind(size(array),row,col) then output = array(index) 这仅给出第一个 2d 数组值,但不给出其余部分
-
@obchardon 我以前也尝试过,但它似乎并没有让我得到我想要的。我需要输出是这样的 out(:,:,1) = 0.7791, 0.7150, 0.0305 out(:,:,2) = 0.5767 等等
标签: arrays matlab indexing element