How to save the result of each loop separately

조회 수: 6 (최근 30일)
Olayinka
Olayinka 2023년 11월 21일
답변: Mathieu NOE 2023년 11월 21일
I want to create two variables which are matrices is zeros(3,2) and zeros(4,2)
y = [3 4];
for i=1:length(y)
x=zeros(y(i),2)
end
x = 3×2
0 0 0 0 0 0
x = 4×2
0 0 0 0 0 0 0 0
I dont want the second loop to overwrite the result of the first loop.

채택된 답변

Paul
Paul 2023년 11월 21일
One option is to use a cell array to store dissimilar objects
y = [3 4];
for i=1:length(y)
x{i}=zeros(y(i),2)
end
x = 1×1 cell array
{3×2 double}
x = 1×2 cell array
{3×2 double} {4×2 double}
Though not shown here, x can be preallocated based on the number of elements in y.

추가 답변 (2개)

Les Beckham
Les Beckham 2023년 11월 21일
Perhaps this (using a cell array)?
y = [3 4];
for i = 1:length(y)
x{i} = zeros(y(i), 2)
end
x = 1×1 cell array
{3×2 double}
x = 1×2 cell array
{3×2 double} {4×2 double}

Mathieu NOE
Mathieu NOE 2023년 11월 21일
hello
some solutions :
y = [3 4];
for k=1:length(y)
% solution 1 : store as cell array
x{k} =zeros(y(k),2);
% solution 2A : store as structure
s(k).data =zeros(y(k),2);
% solution 2B : another structure
t.data{k} =zeros(y(k),2);
end
x
x = 1×2 cell array
{3×2 double} {4×2 double}
s
s = 1×2 struct array with fields:
data
t
t = struct with fields:
data: {[3×2 double] [4×2 double]}

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by