Variables in matrix not updating from for loop

조회 수: 11 (최근 30일)
Nolan Ames
Nolan Ames 2021년 6월 22일
댓글: Nolan Ames 2021년 6월 22일
I am currently using a for loop in order to find the maximum eigenvalues of a matrix. The loop is as follows
for k = 0:c
e = eig(z)
M = max(e)
x = [x,M]
k = k+1
end
The variable k begins at 0, and the loop runs until c, a count of 50. z is the following 4x4 matrix: [k 0 2 0; 0 k 0 2; 3 4 5 0; 4 3 0 5]. What I am attempting to do is extract the maximum eigenvalue from the matrix, add it to an array x , then add 1 to k within the matrix, and continue until c is reached. However, k within the matrix is not updating, so it is simply finding the same eigenvalue 50 times. The k working the counter is performing as expected, but what do I have to do in order to make the k within the matrix update at each step as well?
  댓글 수: 2
Scott MacKenzie
Scott MacKenzie 2021년 6월 22일
편집: Scott MacKenzie 2021년 6월 22일
It would help if you provided all the code so it can be excuted to produce the error.
But, note that this line
k = k+1;
has no bearing on "k within the matrix".
Furthermore, k is the loop index variable in your for-loop, so it cannot be changed within the loop. So, there are a few issues to resolve.
Nolan Ames
Nolan Ames 2021년 6월 22일
That is all the code. If you're reffering to the variables, they are as follows. My assumption based on your response is I should likely change the loop index variable to something besides the matrix k to avoid future confusion.
c = 50
z = [k 0 2 0; 0 k 0 2; 3 4 5 0; 4 3 0 5]

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

채택된 답변

Scott MacKenzie
Scott MacKenzie 2021년 6월 22일
편집: Scott MacKenzie 2021년 6월 22일
I think this is what you are looking for. It updates k in the z matrix in each iteration of the loop. The max values accumulate in the vector x.
c = 50;
k = 0;
z = [k 0 2 0; 0 k 0 2; 3 4 5 0; 4 3 0 5];
x = [];
for k = 0:c
e = eig(z);
M = max(e);
x = [x,M];
% update k in z
z(1,1)=k;
z(2,2)=k;
end
x % output max values
  댓글 수: 1
Nolan Ames
Nolan Ames 2021년 6월 22일
That worked perfectly. Thank you for the timely response, I really appreciate it.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by