How can store data when a function provide answer with different sizes.

1 vue (au cours des 30 derniers jours)
Alan
Alan le 20 Sep 2011
I want to apply a function called extrema that have this way: [xmax, imax, xmin, imin]=extrema (x); but a i have a matrix that have this dimensions: 3500X6 and I want to apply this function in each column, so, six times. However, the answer to each extrema provide me a matrix with different sizes and that way, I can't to do my job. This is the code:
for i=1:NCf
[xmax(:,i),imax(:,i),xmin(:,i),imin(:,i)] = extrema(Graph(:,i));
end
??? Subscripted assignment dimension mismatch.
I though, in change the name of outputs each time that occur the loop, but I don't know how to do?

Réponse acceptée

Wayne King
Wayne King le 20 Sep 2011
Hi Alan, one way is to use cell arrays to store your data.
  2 commentaires
Alan
Alan le 20 Sep 2011
I tried but the Matlab said that is not a cell array
Wayne King
Wayne King le 20 Sep 2011
Hi Alan, you have to use the proper syntax for cell arrays.
xmax{i}

Connectez-vous pour commenter.

Plus de réponses (1)

Jan
Jan le 20 Sep 2011
An approach with cells:
xmax = cell(1, NCf);
imax = cell(1, NCf);
xmin = cell(1, NCf);
imin = cell(1, NCf);
for i=1:NCf
[xmax{i}, imax{i}, xmin{i}, imin{i}] = extrema(Graph(:,i));
end

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by