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 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by