## problem in Matrix Indexing

### sita (view profile)

on 22 Nov 2012
Accepted Answer by vipul utsav

### vipul utsav (view profile)

Hi, below code i am trying to read matrix elements from an array of elements. i should get 5x3 matrix like
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
but i am gettting like below
1 2 3
1 2 3
1 2 3
1 2 3
3 3 3
i understand there is some problem with indexing.
i got some answer saying that to remove f(i,:)=k(x) if i do that f is 1 2 3 it is only 1X3 matrix i need it to be 5X3.
i dont want to use repmat because i have to use this in other context where i can not use.
Thanks,
Sita
n=5; v=3; k=[1 2 3];
for i=1:n
x=0;
for j=1:1:v
x=x+1;
f(:,j)= k(x);
end
f(i,:)=k(x)
end

José-Luis

### José-Luis (view profile)

on 22 Nov 2012
Remove
f(i,:) = k(x);
The result of your loop will be a 5x3 matrix. It will be a 1x3 matrix only on the first iteration. Consider preallocating for speed.
Walter Roberson

on 22 Nov 2012

### Products

Answer by vipul utsav

### vipul utsav (view profile)

on 22 Nov 2012
Edited by Walter Roberson

### Walter Roberson (view profile)

on 22 Nov 2012

n=5; v=3; k=[1 2 3];
for i=1:n
x=0;
for j=1:v
x=x+1;
f(i,j)= k(x);
end
end

### Arthur (view profile)

on 22 Nov 2012

Well, if you insist not to use repmat (why??), I'd do it like this:
f = zeros(n,v);
for i = 1:v
f(:,i) = k(i);
end

Jan

### Jan (view profile)

on 1 Feb 2013
Or:
k = [1,2,3];
f = k(ones(1,v), :);