首页 > 解决方案 > MATLAB 无法显示绘图,但 Microsoft Excel 可以

问题描述

我的目标是在 MATLAB 中的 Excel 中重新创建一个绘图。在excel中,我编写了代码:

1/(1 + (SINH($B$4^(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 显示以下内容,这是正确的: 上述方程的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 问题

我尝试重新启动计算机,重新启动 MATLAB 无济于事。感谢您的指导!

标签: excelmatlabmatlab-figure

解决方案


你忘了两个.

1./(1 + (sinh(v^(1/2)*(1 - x).^(1/2))).^2./(4*x.*(1-x)))
 ^                                       ^

我建议您首先评估表达式并将其存储在一个变量中,然后您可以立即看到如果没有这个点,您将获得一个值。绘制一个向量和一个值并不会真正产生任何可用的东西,但也不会引发错误,因此在工作区中没有变量的情况下进行调试会很棘手。


推荐阅读