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 Comments

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

Sign in to comment.

 Accepted Answer

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 Comments

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);

Sign in to comment.

More Answers (0)

Categories

Find more on Functions in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!