需要有关"In an assignment A(I) = B, the number of elements in B and I must be the same"的详细解释



到目前为止,我没有任何想法来理解这个错误的意思。如果我有,我想我可以在我的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])

相关内容

最新更新