Error::Assignment has more non-singleton rhs dimensions than non-singleton subscripts

I m trying the following code :
for o=1:n x=length(find(cell2mat(mi(1,o)))); m(1,o)=[m(1,o),x]; end
and I get this error.mi and m are cell arrays and both has dimensions of (1xn)
The above code has worked for a similar assignment but a different function on line 2. please help. Thanks!

댓글 수: 2

Just re-formatting this for better readability,
for j=1:n
x=length(find(cell2mat(mi(1,j))));
m(1,j)=[m(1,j),x];
end

댓글을 달려면 로그인하십시오.

 채택된 답변

Matt J
Matt J 2013년 1월 5일
편집: Matt J 2013년 1월 5일
Instead of
m(1,j)=[m(1,j),x];
I think you meant
m{1,j} = x;
Otherwise, clarify what you want m{1,j} to contain.

댓글 수: 4

actually this is what i want to do but the way is wrong. And if i use this statement
m{1,j} = x;
it gives me another error 'Conversion to cell from double is not possible'
I'm skeptical that you've really done
m{1,j} = x;
I suspect what you've really done is used brackets '()' instead of braces '{}'
m(1,j) = x;
The latter would definitely explain the 'Conversion to cell' error.
i got it by the way you told. thank u so much. i did it by another way also - instead of cell i created a 1-D array and stored values as-
for o=1:n
m(1,o)=length(find(cell2mat(mi(1,o))));
end
Thanks once again :)
That does make more sense. Even better would be to do
for o=1:n
m(1,o)=nnz(mi{1,o});
end
Or, if you want to hide the for-loop
m=cellfun(@nnz,mi);

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Functions에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by