define matrix with variable to iterate over

Hello, Its my first day at Matlab and I want to do the following:
I have a 9x9 matrix M(w) that has a variable w. I want to plot the 9 eigenvalues of M(w) (lets call them a_i with i=1,2,...,9) with respect to w. So in the end the graph is showing nine functions a_i(w) i=1,2,...,9.
My Code so far is:
w=(0:0.01:4)*ev/hb;
D_=zeros(9,length(w));
for n=1:length(w)
M=(Here define matrix);
[v,D]=eig(M);
D_(:,n)=diag(D);
end
Plot(hb*w/ev,D_)
Put I dont know how to define M properly such that with each iteration comes a new value for w. I hope someone can help me

 Respuesta aceptada

Torsten
Torsten el 9 de Mzo. de 2022
function main
ev = ...;
hb = ...;
w = (0:0.01:4)*ev/hb;
D_= zeros(9,numel(w));
for n = 1:numel(w)
M = Define_Matrix_M(w(n));
[~,D] = eig(M);
D_(:,n) = diag(D);
end
plot(hb*w/ev,D_)
end
function M = Define_Matrix_M(w)
% Set M depending on w here
end

3 comentarios

Alland Kiepert
Alland Kiepert el 10 de Mzo. de 2022
Editada: Alland Kiepert el 10 de Mzo. de 2022
Thanks for the quick reply. I now get the following error:
File: test.m Line: 49 Column: 13
Invalid expression. When calling a function or indexing a variable, use parentheses.
Otherwise, check for mismatched delimiters.
In Line 49 I wrote:
function M =[....
is the syntax here wrong ?
A line similar to
function M =[....
does not appear in my code suggestion.
Alland Kiepert
Alland Kiepert el 10 de Mzo. de 2022
Oh. Youre right. I interpreted too much in your code

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Line Plots en Centro de ayuda y File Exchange.

Preguntada:

el 9 de Mzo. de 2022

Editada:

el 10 de Mzo. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by