What is the difference in these errors?

2 次查看(过去 30 天)
In a code I am writing, I keep getting the error:
In an assignment A(:) = B, the number of elements in A and B must be the same.
And I can not find anyone else who has this error. The one I can find is:
In an assignment A(I) = B, the number of elements in A and B must be the same.
Could someone please explain the difference in these errors to me?

采纳的回答

James Tursa
James Tursa 2015-4-3
编辑:James Tursa 2015-4-3
E.g., one way to get these errors:
>> A = rand(3)
A =
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218
0.9706 0.8003 0.9157
>> I = A<0.5
I =
0 0 1
1 1 1
0 0 0
>> A(:) = [1 2 3]
In an assignment A(:) = B, the number of elements in A and B must be the same.
>> A(I) = [1 2 3]
In an assignment A(I) = B, the number of elements in B and I must be the same.
In one case, you are attempting to assign to matrix A using the equivalent of linear indexing and the number of elements doesn't match.
In the other case, you are using a logical matrix to indicate the element positions to replace, and again the number of elements doesn't match.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by