Clear Filters
Clear Filters

Error “Assignment has more non-singleton rhs dimensions than non-singleton subscripts”?

86 views (last 30 days)
Why do I get the error “Assignment has more non-singleton rhs dimensions than non-singleton subscripts”?
  3 Comments
Walter Roberson
Walter Roberson on 23 Feb 2017
pratik patel:
Please show us
size(X)
size(Y)
size(Z)
size(Vm)
I suspect that you have created either Z or Vm as global variables and failed to initialize them, which would leave them as empty, resulting in an empty right hand side.
Anshu Khare
Anshu Khare on 25 Jan 2021
bankans(i,:)=sum(bsxfun(@times, ft(i,:), H).^2,2);
Assignment has more non-singleton rhs dimensions than non-singleton subscripts
i am getting this error.please help me

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 23 Oct 2013
Edited: MathWorks Support Team on 27 Nov 2018
In R2017b and earlier releases, this error occurs when you try to assign to a variable, but the indices of the left- and right-hand side of the assignment are incompatible. For example,
A(1) = [1 2 3];
throws this error because the size of the left-hand side is 1-by-1, but the size of the right-hand side is 1-by-3.
In R2018a and later, there is a new error message that replaces this error:
Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.
For more information on matrix indexing, see:
  3 Comments

Sign in to comment.

More Answers (1)

CHANDRA
CHANDRA on 29 Aug 2016
what is the possible solution for this error
  3 Comments
math man
math man on 6 Sep 2017
Edited: Walter Roberson on 7 Sep 2017
I am getting the same error. But very curiously, if I go to the offending line (with a stop in the debugger), then press play, the error does not occur.
Here is some of the error/code:
Error in RealTime_SpreadOverWrite (line 11)
MainObject.MarketData(Row,SpreadBaseCol)=ViggedProbMat(Row,TextFind('SpreadBase1',RawMarketLabels))*SpreadSignMult;
The relevant values for the operation are all real-scalars which I can see are present when I put a stop before executing this line.
Puzzling- what code can I show to help solve this? Thanks!!
Greg Coyle
Greg Coyle on 24 Dec 2017
Great answer, Walter, thank you. I'd been checking length rather than size and all I needed to do was throw a transpose operator on one variable. Solved!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!