Use forLoop to manipulate values of elements in a specific column

조회 수: 3 (최근 30일)
JZ
JZ . 2015년 12월 5일
댓글: lsutiger1 . 2015년 12월 6일
I created the following 5x5 matrix with no data:
mat = zeros(5:5)
mat =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
I would like to use a for loop to generate the following result
mat =
0 0 0 0 0
0 0 0 10 0
0 0 0 20 0
0 0 0 30 0
0 0 0 40 0
I attempted using the following code, but the operation was performed on the first column - not the 4th, as I had intended.
for i = 2:length(mat(:,4))
mat(i) = mat(i-1) + 10;
end
This was the actual result
mat =
0 0 0 0 0
10 0 0 0 0
20 0 0 0 0
30 0 0 0 0
40 0 0 0 0
I imagine this is a simple syntax problem, but I am not finding the solution in any of the forums. Any help is appreciated.
Thanks

채택된 답변

Star Strider
Star Strider 2015년 12월 5일
This works:
mat = zeros(5:5);
mat(:,4) = 0:10:10*(size(mat,1)-1);
mat =
0 0 0 0 0
0 0 0 10 0
0 0 0 20 0
0 0 0 30 0
0 0 0 40 0
  댓글 수: 4

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

추가 답변 (1개)

lsutiger1
lsutiger1 2015년 12월 5일
You have only specified the row that you want to manipulate; you need to specify both the row and column.
mat(i) = mat(i-1,4) + 10;
  댓글 수: 4
lsutiger1
lsutiger1 2015년 12월 6일
That's because you used i-4 rather than i-1.

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

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by