2

到目前为止,我没有任何想法来理解这个错误的意思。如果有的话,我想我可以在我的 matlab 编程中解决这个问题。

如果有人可以帮助我解释发生了什么并举个例子?

4

1 回答 1

8

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])
于 2012-10-08T07:51:39.370 回答