How do I create an array of a function output?

59 ビュー (過去 30 日間)
FortuitousMonkey
FortuitousMonkey 2018 年 2 月 25 日
コメント済み: Cedrick De Block 2020 年 11 月 10 日
How do I create an array of a function output? Each attempt I've tried it overwrites the value in the array and returns a 1x1 array with the final value calculated as it's value.
I've seen nested list functions or push functions? Which is the best for the below case and how do I implement it?
Apologies if this is a simplistic question, just struggling with this problem.
My function is:
>> m=0:1:3
>> n=0:1:4
>> for a=m
for b=n
res=ack(a,b)
end
end
function res=ack(m,n)
if m==0
res = n+1;
elseif m>0 && n==0
res = ack(m-1,1);
elseif m>0 && n>0
res = ack(m-1,ack(m,n-1));
end
end
  1 件のコメント
David Fletcher
David Fletcher 2018 年 2 月 25 日
編集済み: Stephen23 2018 年 2 月 26 日
Essentially your problem is very similar to the answer I provided for
Maybe not the 'best' way to do it, but it is pretty much the answer to the problem you are outlining

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

採用された回答

Stephen23
Stephen23 2018 年 2 月 26 日
Method one: nested loops and indexing
m = 0:3;
n = 0:4;
out = nan(numel(m),numel(n));
for km=1:numel(m)
for kn=1:numel(n)
out(km,kn) = ack(m(km),n(kn));
end
end
giving:
out =
1 2 3 4 5
2 3 4 5 6
3 5 7 9 11
5 13 29 61 125
Method two: arrayfun:
>> [M,N] = ndgrid(m,n);
>> out = arrayfun(@ack,M,N)
out =
1 2 3 4 5
2 3 4 5 6
3 5 7 9 11
5 13 29 61 125
  2 件のコメント
FortuitousMonkey
FortuitousMonkey 2018 年 2 月 26 日
Both work for me.
Thanks for helping.
Cedrick De Block
Cedrick De Block 2020 年 11 月 10 日
hello excuse me,
in your fist example I have a problem with "ack"
matlab doesn't reconise it, is it a function?

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2018 年 2 月 25 日
  1 件のコメント
FortuitousMonkey
FortuitousMonkey 2018 年 2 月 26 日
Could you help me implement this in my code, please? I am drawing a blank (relatively new to matlab).

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

カテゴリ

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

製品

Community Treasure Hunt

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

Start Hunting!

Translated by