For Loop help for function input

2 ビュー (過去 30 日間)
Pool
Pool 2022 年 12 月 1 日
コメント済み: David Hill 2022 年 12 月 3 日
Hello,
I am trying to make a for loop to create inputs for a function, and store outputs - there are 4 inputs, and manually I would type in:
ones(4,1) in the function which is called main, so it looks in the input window as: main(ones(4,1))
This gives 4 outputs, which I would like to store in an excel file later on. However, I want to vary these inputs, and change all 4 of them to make 4^4 combinations (256) with two numbers (1 or 5). So for example:
[1 1 1 1];
[5 1 1 1];
[1 5 1 1];
[5 5 1 1];
[1 1 5 1]; ...................
as you can see, doing this manually is quite tedious - I know a for loop helps here and I can make 256 iterations run by
for i = 1:256
(this is main body)
.....
end
I am confused on whether I should have a nested loop to do this, and how I can store these values in separate rows for each iteration. Any help will be appreciated.

採用された回答

David Hill
David Hill 2022 年 12 月 2 日
r=randi(2,5,4);
r(r==2)=5
r = 5×4
1 1 5 5 1 1 5 1 5 1 1 1 1 5 1 5 1 1 5 5
  4 件のコメント
Pool
Pool 2022 年 12 月 3 日
You are right, sorry for the confusion haha - so if I was running a for loop for i = 1:16 iterations, and I get an output from another function, which gives out a 1x4 vector = [x1 x2 x3 x4] - and I want to store these into an empty matrix (zeros(16,4)), would I write:
for i = 1:16
s = (zeros(16,4));
r=randi(2,16,4);
r(r==2)=5;
x = main(r(i,:));
s(i,:) = x(1,:);
end
For some reason, this does not store the 1x4 outputs for me and gives an error
David Hill
David Hill 2022 年 12 月 3 日
s=zeros(16,4);
for i=1:16
r=randi(2,1,4);%assumed output from another function
r(r==2)=5;
s(i,:)=r;
end
s
s = 16×4
1 1 1 5 5 5 5 5 1 1 1 5 1 1 1 5 1 5 1 1 1 5 5 1 5 5 5 5 1 1 5 5 1 1 1 1 5 5 5 1

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by