【发布时间】:2011-01-26 23:03:20
【问题描述】:
我有一个二维数组,称之为A。我还有另外两个二维数组,分别称为ix 和iy。我想创建一个输出数组,其元素是A 在ix 和iy 提供的索引对处的元素。我可以通过如下循环来做到这一点:
for i=1:nx
for j=1:ny
output(i,j) = A(ix(i,j),iy(i,j));
end
end
如何在没有循环的情况下做到这一点?如果我做output = A(ix,iy),我会在 (ix)X(iy) 的整个范围内得到 A 的值。
【问题讨论】:
-
小心 - 您使用 ix 数组提供 y 坐标,使用 iy 数组提供 x。在 MATLAB 中,第一个索引是 y 坐标。你的输出矩阵也是如此 - 你对 for 循环使用了错误的限制。
-
好点,但这有点取决于他如何使用数据。如果他不在乎显示他的矩阵会显示 x 上下和 y 左右,那么与 Matlab 约定不同没有根本问题。但我同意,知道这一点很重要。
标签: matlab arrays indexing octave