dimension mismatch error in Matlab

9 次查看(过去 30 天)
Hi everybody,
When i run my program the following error occurs.
"Subscripted assignment dimension mismatch."
I don't know what it means, in particular what it is saying about dimension! i just have some vectors in 1*6 or 3*6.
Looking forward to hearing from you
Best,
  2 个评论
Javier
Javier 2012-9-20
Possible problems.
Vector multiplication error. M(3x1)*N(2x3).
Define break points in the code to search in what line the error occurs.
Hope it helps
Javier
Respaco
Respaco 2012-9-20
Thanks Javier. Actually Matlab shows in which line it has found this error but i can not understand the mistake. It is such a code : A(i,:)=B(1,:);

请先登录,再进行评论。

采纳的回答

Matt Fig
Matt Fig 2012-9-20
编辑:Matt Fig 2012-9-20
With code like this:
A(i,:)=B(1,:); % Assume i is a scalar...
you need to make sure that:
size(B,2)==size(A,2)
For example:
A = zeros(6,3);
B = magic(3);
TF = size(B,2)==size(A,2) % True, so o.k.
ii = 2;
A(ii,:)=B(1,:); % This works, because TF is 1.
but, this doesn't work:
A = zeros(3,6);
B = magic(3);
TF = size(B,2)==size(A,2) % False, so not o.k.
ii = 2;
A(ii,:)=B(1,:); % This doesn't works, because TF is 0.
  3 个评论
Matt Fig
Matt Fig 2012-9-20
Show the relevant code, because there is something you are leaving out. This works and it goes beyond 1000:
A = zeros(2000,3); % 2000 rows.
B = rand(2000,3);
TF = size(B,2)==size(A,2) % True, so o.k.
for ii = 1:2000,A(ii,:) = B(randi(2000),:);end
Walter Roberson
Walter Roberson 2012-9-20
At the point of error, check to see whether "i" has become a vector.
If it has become a vector, then my crystal ball thinks you might need to read http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by