How to code with for loop loops without using ndgrid?

1 回表示 (過去 30 日間)
Meliha Basturk
Meliha Basturk 2021 年 10 月 27 日
回答済み: Stephen23 2021 年 10 月 27 日
Hello, how do I write the following code without ndgrid, that is, with for loop loops, without using a ready-made library.
[A B C]=ndgrid(1:2,3:4,5:6);
A1=reshape(A,[],1);
B1=reshape(B,[],1);
C1=reshape(C,[],1);
d=[A1,B1,C1]

回答 (2 件)

David Hill
David Hill 2021 年 10 月 27 日
count=0;
for c=5:6
for b=3:4
for a=1:2
count=count+1;
d(count,:)=[a,b,c];
end
end
end

Stephen23
Stephen23 2021 年 10 月 27 日
As this is clearly homework, this should get you started:
inp = {1:2, 3:4, 5:6};
[A,B,C] = ndgrid(inp{:});
A1=reshape(A,[],1);
B1=reshape(B,[],1);
C1=reshape(C,[],1);
d=[A1,B1,C1]
d = 8×3
1 3 5 2 3 5 1 4 5 2 4 5 1 3 6 2 3 6 1 4 6 2 4 6
S = cellfun(@numel,inp);
reshape(repmat(reshape(inp{1},S(1),1,1),1,S(2),S(3)),[],1)
ans = 8×1
1 2 1 2 1 2 1 2

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by