到目前为止,我没有任何想法来理解这个错误的意思。如果有的话,我想我可以在我的 matlab 编程中解决这个问题。
如果有人可以帮助我解释发生了什么并举个例子?
IfI
是一个逻辑矩阵
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])