我的目標是在 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.01(即繪圖的 x 軸)為增量從 0 到 5。然后我將上述公式應用于 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 無濟于事。感謝您的指導!
uj5u.com熱心網友回復:
你忘記了兩個.:
1./(1 (sinh(v^(1/2)*(1 - x).^(1/2))).^2./(4*x.*(1-x)))
^ ^
我建議您首先評估運算式并將其存盤在一個變數中,然后您可以立即看到,如果沒有這個點,您將得到一個單一的值。繪制向量和單個值并不會真正產生任何可用的東西,但也不會拋出錯誤,因此在沒有作業區中的變數的情況下進行除錯是很棘手的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327249.html
上一篇:一旦改變父集,孤兒就不會被洗掉JPA2 Hibernate5
下一篇:非線性輸出到命令列
