MATLAB 无法显示绘图,但 Microsoft Excel 可以
MATLAB fails to display plot, but Microsoft Excel can
我的目标是在 MATLAB 中重新创建 Excel 中的绘图。在excel中,我编码了:
1/(1 + (SINH($B^(1/2)*(1 - C6)^(1/2)))^2/(4*C6*(1-C6)))
在上面,单元格 B4 的值为 10。C6 到 C500 连续采用从 0 到 5 的值(因此 C6 将为 0,而 C500 将为 C6+0.01+0.01+0.01... = 5), 增量为 0.01.
换句话说,'C' 列从 0 到 5,增量为 0.01(这是图的 x 轴)。然后我将上面的公式应用于 C 列以获得下图。
Excel 显示以下内容,这是正确的:
但是,尝试在 MATLAB 中重新创建相同的图形会导致空图(我在代码后显示)
v = 10
x = [0:0.01:5]
plot(x, 1/(1 + (sinh(v^(1/2)*(1 - x).^(1/2))).^2/(4*x.*(1-x))), 'LineWidth', 2)
grid on
xlabel('x')
ylabel('Transmittance')
我试过重新启动计算机,重新启动 MATLAB 无济于事。
感谢您的指导!
您忘记了两个 .
:
1./(1 + (sinh(v^(1/2)*(1 - x).^(1/2))).^2./(4*x.*(1-x)))
^ ^
我建议你先计算表达式并存储在一个变量中,然后你可以立即看到没有这个点你将得到一个值。绘制向量和单个值并不会真正产生任何可用的东西,但也不会引发错误,因此在工作区中没有变量的情况下进行调试很棘手。
我的目标是在 MATLAB 中重新创建 Excel 中的绘图。在excel中,我编码了:
1/(1 + (SINH($B^(1/2)*(1 - C6)^(1/2)))^2/(4*C6*(1-C6)))
在上面,单元格 B4 的值为 10。C6 到 C500 连续采用从 0 到 5 的值(因此 C6 将为 0,而 C500 将为 C6+0.01+0.01+0.01... = 5), 增量为 0.01.
换句话说,'C' 列从 0 到 5,增量为 0.01(这是图的 x 轴)。然后我将上面的公式应用于 C 列以获得下图。
Excel 显示以下内容,这是正确的:
但是,尝试在 MATLAB 中重新创建相同的图形会导致空图(我在代码后显示)
v = 10
x = [0:0.01:5]
plot(x, 1/(1 + (sinh(v^(1/2)*(1 - x).^(1/2))).^2/(4*x.*(1-x))), 'LineWidth', 2)
grid on
xlabel('x')
ylabel('Transmittance')
我试过重新启动计算机,重新启动 MATLAB 无济于事。 感谢您的指导!
您忘记了两个 .
:
1./(1 + (sinh(v^(1/2)*(1 - x).^(1/2))).^2./(4*x.*(1-x)))
^ ^
我建议你先计算表达式并存储在一个变量中,然后你可以立即看到没有这个点你将得到一个值。绘制向量和单个值并不会真正产生任何可用的东西,但也不会引发错误,因此在工作区中没有变量的情况下进行调试很棘手。