loop with easy underfunction

10 ビュー (過去 30 日間)
ErikJ
ErikJ 2017 年 11 月 7 日
コメント済み: Rik 2017 年 11 月 7 日
function tretti
for k=1:3
F=results(k)
end
function h=results(k)
A ={k*2};
A1(k)= A
h=A1
%output: F=[] [] [6]
%what i want: F=[2] [4] [6] //cell array
  1 件のコメント
ErikJ
ErikJ 2017 年 11 月 7 日
Sorry, the question is: why is my underfunction not remembering my earlier value of A1 and how can i make it to remember?

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

回答 (1 件)

Rik
Rik 2017 年 11 月 7 日
Because you are overwriting it every iteration.
function F=tretti
for k=1:3
F{k}=results(k);
end
function h=results(k)
A ={k*2};
A1(k)= A;
h=A1;
You should look into cellfun, it may be really useful for what you are trying to do.
  2 件のコメント
ErikJ
ErikJ 2017 年 11 月 7 日
yes but i dont have a cell array that i want to aply a function on. I want to make a cell array [2] [4] [6] [8] [10].... cellfun(func,A) my function is take k*2 but what is my A and how do i create it?
Rik
Rik 2017 年 11 月 7 日
The modification of your code should work. You could also generate it as a vector or matrix, and then convert it to a cell with num2cell (or mat2cell).

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by