problem in Matrix Indexing

조회 수: 3 (최근 30일)
sita
sita 2012년 11월 22일
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.
Please help me in getting this.
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
José-Luis
José-Luis 2012년 11월 22일
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.

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

채택된 답변

vipul utsav
vipul utsav 2012년 11월 22일
편집: Walter Roberson 2012년 11월 22일
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

추가 답변 (1개)

Arthur
Arthur 2012년 11월 22일
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
  댓글 수: 1
Jan
Jan 2013년 2월 1일
Or:
k = [1,2,3];
f = k(ones(1,v), :);

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

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by