【问题标题】:MATLAB fails to display plot, but Microsoft Excel canMATLAB 无法显示绘图,但 Microsoft Excel 可以
【发布时间】:2021-12-06 13:25:30
【问题描述】:

我的目标是在 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 显示以下内容,这是正确的:

但是,尝试在 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 无济于事。 感谢您的指导!

【问题讨论】:

  • 你需要./ 而不是7;两次

标签: excel matlab matlab-figure


【解决方案1】:

你忘记了两个.

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

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

【讨论】:

  • 非常感谢!它现在在绘图!我如何知道我必须在哪里使用我的点
  • @Matt 当你想用*^/(也可以是\ 进行element-wise 操作时,需要使用该点,但使用频率较低元素方面)。没有点它们是 matrix 操作。 + 没有点,因为矩阵加法与元素加法相同。有关更多信息,请参阅here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
相关资源
最近更新 更多