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

 採用された回答

Torsten
Torsten 2022 年 3 月 9 日

1 投票

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 件のコメント

Alland Kiepert
Alland Kiepert 2022 年 3 月 10 日
編集済み: Alland Kiepert 2022 年 3 月 10 日
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 ?
Torsten
Torsten 2022 年 3 月 10 日
A line similar to
function M =[....
does not appear in my code suggestion.
Alland Kiepert
Alland Kiepert 2022 年 3 月 10 日
Oh. Youre right. I interpreted too much in your code

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLine Plots についてさらに検索

質問済み:

2022 年 3 月 9 日

編集済み:

2022 年 3 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by