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

1 回表示 (過去 30 日間)
Alan
Alan 2011 年 9 月 20 日
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?

採用された回答

Wayne King
Wayne King 2011 年 9 月 20 日
Hi Alan, one way is to use cell arrays to store your data.
  2 件のコメント
Alan
Alan 2011 年 9 月 20 日
I tried but the Matlab said that is not a cell array
Wayne King
Wayne King 2011 年 9 月 20 日
Hi Alan, you have to use the proper syntax for cell arrays.
xmax{i}

サインインしてコメントする。

その他の回答 (1 件)

Jan
Jan 2011 年 9 月 20 日
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

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by