MATLAB: Too many output arguments

absfunctiontoo many output arguments

hi,
why do I get too many output arguments here? C is a matrix
[m, n]=size(C);
for i=1:1:n
j=i:m
[wert, wo]=[abs(max(C(:,i)))], [i:1:m]
end

Best Answer

you cannot assign to multiple variables using the syntax
[A, B] = [C], [D]
To assign to multiple variables then you need one right hand side, which has to be of the form:
  1. a function that returns multiple outputs, like max can but abs cannot
  2. a structure expansion
  3. a cell expansion
  4. deal() -- which is really just a function that returns multiple outputs
You could turn what you have into a call to deal(). I do not especially recommend that, as I find it less clear than multiple assignment statements.