storing values in Arrays

3 views (last 30 days)
Muhammad Naveed Iqbal
Muhammad Naveed Iqbal on 4 Jun 2015
Answered: Guillaume on 4 Jun 2015
I want to store different values of t in I but I can't store via this code please help me
for j=0:4
U2 = makedist('Uniform','lower',200,'upper',600);
t=random(U2)
t=round(t)
I(:,j)=t
end

Answers (2)

Walter Roberson
Walter Roberson on 4 Jun 2015
You started j as 0 and try to store into I(:,j) so you are trying to store in column 0. Matlab array index start at 1

Guillaume
Guillaume on 4 Jun 2015
Well, you can't use a value of zero (the first value j will have) to index into a matrix. Indices must be strictly positive integer. The simplest fix is to have j go from 1 to 5.
The whole line I(:, j)=t is very suspicious. t is scalar, so why have you got a colon (which would indicate you intended to store a vector)? I'd recommend you go through the tutorial to understand indexing.
Note that if all you want to generate is 5 integers between 200 and 600 using a uniform distribution, then randi is much simpler:
I = randi([200 600], 1, 5)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!