【发布时间】:2026-02-13 12:15:01
【问题描述】:
我正在编写一个名为 large_elements 的函数,它接受一个名为 X 的数组的输入,该数组是一个矩阵或向量。该函数识别X 中大于它们两个索引之和的那些元素。
例如,如果元素X(2,3) 是6,则该元素将被识别为6 > (2 + 3)。该函数的输出给出了以row-major order找到的这些元素的索引(行和列子)。它是一个正好有两列的矩阵。第一列包含行索引,而第二列包含相应的列索引。
这里是一个例子,语句
indexes = large_elements([1 4; 5 2; 6 0])
应该给出这样的输出:
[1 2; 2 1; 3 1]
如果不存在这样的元素,
该函数返回一个
empty array.
我想出了以下代码
function indexes = large_elements(A)
[r c] = size(A);
ind = 1;
for ii = 1:r
for jj = 1:c
if A(ii,jj) > ii + jj
indexes(ind,:) = [ii jj];
ind = ind + 1;
else
indexes = [];
end
end
end
end
但结果并不如预期。任何帮助将不胜感激。
【问题讨论】:
-
我已经更新了代码,参数错误 [10 9 8 7 6 5 4 3 2 1] 输出应该是 [1 1;1 2;1 3;1 4]跨度>
标签: arrays matlab for-loop matrix