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

 采纳的回答

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 个评论

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.
Oh. Youre right. I interpreted too much in your code

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Line Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by