problem in Matrix Indexing

5 views (last 30 days)
sita on 22 Nov 2012
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
2 CommentsShowHide 1 older comment
Walter Roberson on 22 Nov 2012

vipul utsav on 22 Nov 2012
Edited: Walter Roberson 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 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 on 1 Feb 2013
Or:
k = [1,2,3];
f = k(ones(1,v), :);

Categories

Find more on Matrix Indexing 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!

Translated by