Too 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

 Risposta accettata

Walter Roberson
Walter Roberson il 26 Ago 2020
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.

1 Commento

Walter Roberson
Walter Roberson il 26 Ago 2020
Which of the four cases I listed do you consider your [wert, wo]=[k, z] line to be?

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Parallel Computing Toolbox in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by