如何在 MATLAB 中对系列使用 for 循环
How to use for loop with series in MATLAB
我这里有一个等式,在图中
我正在尝试绘制 y 轴是这个方程式,x 轴是时间 - 只是一个向量。
我所有的首字母:
%Initials
Beta=[24 123 117 262 108 45]*10^-5; %pcm
Lambda=[0.0127 0.0317 0.1160 0.3106 1.4006 3.8760]; %1/s
LAMBDA=10^-4 ; %s
W=[ 0.376 -0.0133 -0.0426 -0.153 -0.972 -3.38 -29.5]
Rho=400*10^-5
t=linspace(1,30,7)
这是我正在使用的代码:
for n=1:7
for j=1:6
S1=Rho*sum(exp(W(n)'.*t)/(W(n)'.*(LAMBDA+(sum(Beta(j).*Lambda(j)./(W(n)+Lambda(j))^2)))))
end
end
semilogy(t,S1,'b','linewidth',2);
和 S1 returns 太多答案,据我所知,它应该只给出 7...
而且我是 matlab 和一般编码的新手,所以如果答案很明显,我仍然不知道如何让它工作:D
让我们先澄清一些事情。
为了绘制(任何类型的)二维图,您需要在 Matlab 中使用两个向量。它们的长度应该相等。一个代表所有的 x 坐标。另一个用于所有 y 坐标。
您在 t=linspace(1,30,7)
中获得 x 坐标。但是,你没有对应的y坐标。
对于您的情况,最好将您的公式表述为 t
的函数。为了清楚起见,让我们分解一下总和。例如,
function num = oscillation_modes_of_sort(t)
outer_sum = 0;
for j=1:numel(W)
inner_sum = 0;
for i=1:numel(Beta)
inner_sum = inner_sum + Beta(i)*Lambda(i)/(W(j)+Lambda(i))^2;
end
outer_sum = out_sum + exp(W(j)*t)/(W(j)*(LAMBDA+inner_sum));
end
num = Rho * outer_sum;
end
现在,您的 y 坐标将为 oscillation_modes_of_sort(t)
。
如果 W
和 Beta
更长,则有一些方法可以使代码更简洁或更友好。但是让我们以后再做吧。
我这里有一个等式,在图中
我正在尝试绘制 y 轴是这个方程式,x 轴是时间 - 只是一个向量。 我所有的首字母:
%Initials
Beta=[24 123 117 262 108 45]*10^-5; %pcm
Lambda=[0.0127 0.0317 0.1160 0.3106 1.4006 3.8760]; %1/s
LAMBDA=10^-4 ; %s
W=[ 0.376 -0.0133 -0.0426 -0.153 -0.972 -3.38 -29.5]
Rho=400*10^-5
t=linspace(1,30,7)
这是我正在使用的代码:
for n=1:7
for j=1:6
S1=Rho*sum(exp(W(n)'.*t)/(W(n)'.*(LAMBDA+(sum(Beta(j).*Lambda(j)./(W(n)+Lambda(j))^2)))))
end
end
semilogy(t,S1,'b','linewidth',2);
和 S1 returns 太多答案,据我所知,它应该只给出 7... 而且我是 matlab 和一般编码的新手,所以如果答案很明显,我仍然不知道如何让它工作:D
让我们先澄清一些事情。
为了绘制(任何类型的)二维图,您需要在 Matlab 中使用两个向量。它们的长度应该相等。一个代表所有的 x 坐标。另一个用于所有 y 坐标。
您在 t=linspace(1,30,7)
中获得 x 坐标。但是,你没有对应的y坐标。
对于您的情况,最好将您的公式表述为 t
的函数。为了清楚起见,让我们分解一下总和。例如,
function num = oscillation_modes_of_sort(t)
outer_sum = 0;
for j=1:numel(W)
inner_sum = 0;
for i=1:numel(Beta)
inner_sum = inner_sum + Beta(i)*Lambda(i)/(W(j)+Lambda(i))^2;
end
outer_sum = out_sum + exp(W(j)*t)/(W(j)*(LAMBDA+inner_sum));
end
num = Rho * outer_sum;
end
现在,您的 y 坐标将为 oscillation_modes_of_sort(t)
。
如果 W
和 Beta
更长,则有一些方法可以使代码更简洁或更友好。但是让我们以后再做吧。