Loop that creates arrays

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?

 Accepted Answer

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 Comments

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.
I completely agree, Walter. I have changed the answer accordingly.

Sign in to comment.

More Answers (3)

Brian
Brian on 10 Feb 2011

0 votes

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

1 Comment

These remarks are better done as Comments on the appropriate answer.

Sign in to comment.

Hillary Omuga
Hillary Omuga on 31 Jan 2020

0 votes

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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Asked:

on 10 Feb 2011

Answered:

on 31 Jan 2020

Community Treasure Hunt

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

Start Hunting!