Hey folks I'm trying to write a loop that will create arrays filled with zeros and I'd like it so that each array can be identified somehow (i.e. subscripts, unique name for each array).
In Maple, I would have done something like this... for k to 10 do A[k] := Array(1..10): end do:
which would create 10 arrays and each could be indivually accessed using A[k]. (i.e. A[1] is an array of size 10, A[2] is a different array of size 10 etc...)
Is there a way to do this in Matlab?

 채택된 답변

Jos (10584)
Jos (10584) 2011년 2월 10일

3 개 추천

If all the arrays are vectors (=1D arrays in matlab) you can store them in a matrix (=2D array).
% Pre-allocate an matrix with four "vector arrays" of 6 elements each
A = zeros(4,6) ;
Here is an example to fill this array
for k=1:4
A(k,:) = (1:6) ./ k ; % just an example
end
To access a "array" (vector!) use indexing B = A(2,:) % get second row
If the vectors have different sizes, you need to look into cells and/or structs
A = {1:3 1:10 1:5} % a cell with 3 vectors
A{3} % third vector

댓글 수: 2

Walter Roberson
Walter Roberson 2011년 2월 10일
Small modification: instead of
A(k,:) = [1:6) / k;
better is
A(k,:) = (1:6) ./ k;
1:6 is automatically a vector and does not need [] around it. And using ./ instead of / is good practice as is makes it clearer that you are expecting element-by-element division rather than matrix division.
Jos (10584)
Jos (10584) 2011년 2월 11일
I completely agree, Walter. I have changed the answer accordingly.

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

추가 답변 (3개)

Sean de Wolski
Sean de Wolski 2011년 2월 10일

1 개 추천

doc cell
You need cell arrays.
Brian
Brian 2011년 2월 10일

0 개 추천

Ok great thanks for that.
I think I'll go with Jos' option as all vectors should be the same size.

댓글 수: 1

Walter Roberson
Walter Roberson 2011년 2월 10일
These remarks are better done as Comments on the appropriate answer.

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

Hillary Omuga
Hillary Omuga 2020년 1월 31일

0 개 추천

write a for loop to create an array named X. Each value in X is equal to its assaciated index value (a.k.a its position in the array) times 12 minus 1. The size of X is 52*1

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2011년 2월 10일

답변:

2020년 1월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by