필터 지우기
필터 지우기

obtaining an array containing arrays

조회 수: 1 (최근 30일)
shru s
shru s 2017년 6월 20일
댓글: shru s 2017년 6월 22일
hello, suppose i am generating an array with every loop. I want a new array to store all the values of the array together but seperately as different elements. If I have A = [1 2 3 4] in the 1st loop and A = [2 4 6 8] when it completes the second loop i want an array B that will have B= [1 2 3 4 ; 2 4 6 8]. If anyone can help me with this, I will be grateful. Thank you.

채택된 답변

James Tursa
James Tursa 2017년 6월 20일
편집: James Tursa 2017년 6월 20일
E.g.,
m = number of loop iterations
B = zeros(m,4);
for k=1:m
A = results of current iteration
B(k,:) = A;
end
  댓글 수: 4
James Tursa
James Tursa 2017년 6월 20일
편집: James Tursa 2017년 6월 20일
You could set things up so the first iteration expands the matrix appropriately. E.g.,
m = number of loop iterations
B = zeros(m,0); % <-- Unknown column size, so start with 0
for k=1:m
A = results of current iteration
B(k,1:size(A,2)) = A; % <-- 1st iteration will set the column size
end
shru s
shru s 2017년 6월 22일
Thank you so much for your help!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Jan
Jan 2017년 6월 20일
편집: Jan 2017년 6월 20일
nLoop = 5;
nValue = 4;
Result = zeros(nLoop, nValue); % Pre-allocate!
for k = 1:nLoop
A = randi(10, 1, nValue) % Example data
Result(k, :) = A;
end
disp(Result)
  댓글 수: 3
Jan
Jan 2017년 6월 20일
편집: Jan 2017년 6월 20일
See James' answer. If nValue i changing between the elements, use a cell array:
nLoop = 5;
Result = cell(nLoop, 1); % Pre-allocate!
for k = 1:nLoop
A = randi(10, 1, randi(5)) % Example data
Result{k} = A;
end
An "implicite pre-allocation" works also, if you create the last element at first:
nLoop = 5;
for k = nLoop:-1:1 % Backwards for implicite pre-allocation
A = randi(10, 1, 4) % Example data
Result(k, :) = A;
end
It is essential, that the output does not grow iteratively, because this requires an exponentially growing number of resources. With 5 iterations this cannot be measured, but the rule is to care about a pre-allocation in general as a good programming practice.
shru s
shru s 2017년 6월 22일
thank you so much for helping me out :)

댓글을 달려면 로그인하십시오.

카테고리

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