Я пытаюсь построить график значения значения переменной x по оси x; Однако, есть три значения для каждой точки, то есть, собственная частота 1, частота собственных колебаний 2 и собственная частота 3. Это код, и он не работает:Построение графика с логарифмической осью - 3 значения y для каждого значения x
M = [3 0 0; 0 2 0; 0 0 0.5]
% disp('Mass matrix [M]');
% disp(M);
for i=1:1000:60e06
K = [i+7e06 i -6e06; i i+3e06 -3e06; -6e06 -3e06 10e06];
% disp(K)
[V,L]=eig(K,M); % eig is a standard Matlab function
values=diag(L); % diag gets the values from the leading diagonal
[values,I]=sort(values); % sort into ascending order of frequency
V(:,I)=V; % now sort the mode shape vectors
freq=sqrt(values)/(2*pi); % this divides all elements by 2 pi
% disp('Eigenvalues [s^(-2)]');
% disp(values'); % the quote mark after values prints the column vector as a row
% disp('Frequencies [Hz]');
% disp(freq');
% disp('Mode shape vectors in the columns of matrix [V]');
% disp(V);
loglog(i, freq(1:1), i, freq(2:1), i, freq(3:1)
end
Извиняюсь за ошибки, Я начинающий.
'1: 1',' 2: 1' и '3: 1 'не может быть то, что вы на самом деле означает, возможно, вы собираетесь 'freq (1, 1)', 'freq (2, 1)' и 'freq (3, 1)', но трудно сказать: вы должны быть более конкретными, чем «неработающие». Что вы видели, а что вы ожидали увидеть? Также обратите внимание, что без 'hold on' или' pause' после 'loglog' цикл будет просто переписывать график быстрее, чем вы можете видеть. – jez