到目前为止,我没有任何想法来理解这个错误的意思。如果我有,我想我可以在我的matlab编程中解决这个问题。
如果有人能帮我解释一下发生了什么并举一些例子?
如果I
是一个逻辑矩阵
I =
1 0 1 1 0
A
是相同大小的数组,
A =
5 3 8 1 2
然后
>> A(I)
ans =
5 8 1
即,I
用作A
中元素的掩码。你也可以使用它来识别:
>> A(I) = 4
A =
4 3 4 4 2
(标量分配),或
>> A(I) = [1 NaN 3]
A =
1 3 NaN 3 2
(数组分配)。如果您尝试执行类似操作,则会收到错误
>> A(I) = [ 7 6 5 4 8 7 6 8 7 9 4 3 2]
即,A(I)
指的元素数量与[7 6 5 4 8 7 6 8 7 9 4 3 2]
包含的元素数量不同。这仅在使用标量值或空值赋值时有效
A(I) = [] %# valid
A(I) = 4 %# valid
A(I) = [1 2 3] %# valid, numel(A(I)) == numel([1 2 3])
A(I) = [1 2] %# NOT VALID, numel(A(I)) != numel([1 2])