find()
函数返回元素非零的索引。我尝试了不同的数组大小,但都给出了错误:
In an assignment A(I) = B, the number of elements in B and I must be the same.
我很困惑,因为当数组大小相同时,我仍然会收到此错误。
这只是为了解出了什么问题: LEt,
示例1:相同的数组大小
A = [20;21;3;45;5;19;1;8;2;1];
B = A;
for i =1:length(B)
pos(i) = find(A == B(i));
end
我应该有pos = [1,2,3,4,5,6,7,8,9,10]
。但是循环在i = 7
之后退出,给出了'pos = [1,2,3,4,5,6]'
示例2:不同的数组大小
C = [20;1;10;3];
for i =1:length(C)
pos(i) = find(A == C(i));
end
有人可以解释我理解中的错误,并说明如何使用相同和不同的A和B数组长度?谢谢。
答案 0 :(得分:1)
问题是find(A == 1)返回两个索引,包括7和10,并且不能存储在pos(i)中,因为pos(i)只能保存一个数字。
不幸的是,通用错误消息恰好与矩阵的两个矩阵具有相同的名称,这可能会让您在看到它几次之前感到困惑。