以下是我们的代码:
syms M_e
solve('9.5=0.58*(((1+(0.155*M_e^2))^3.73)/M_e',M_e);
fprintf('text %d .\n',M_e);
当我运行它时,我们收到以下错误:
>> SM_Projekt_29
ans =
3.5712628547590099257134566797414
Error using fprintf
Function is not defined for 'sym' inputs.
Error in SM_Projekt_29 (line 34)
fprintf('text %d .\n',M_e);
如何解决此错误?是否发生错误是因为它没有继续使用求解的值M_e
进行计算?我该如何解决这个问题?
答案 0 :(得分:3)
您正试图在fprintf
变量上使用sym
,这是不允许的。 fprintf
用于数字(单值,矩阵,向量)或字符数组/字符串。尝试将sym
类型变量转换为double
,然后显示它。另外,将说明符更改为%f
,而不是%d
,因为我非常怀疑您的答案是浮点数。
此外,您尚未将solve
的输出分配给任何内容。确保在运行代码之前执行此操作:
syms M_e;
val = solve('9.5=0.58*(((1+(0.155*M_e^2))^3.73)/M_e)',M_e); %// Change
fprintf('text %f .\n',double(val)); %// Change
运行更正后的代码,我明白了:
val =
3.5713
如果您想显示更多有效数字,请在显示答案前尝试使用format long g;
:
>> format long g;
>> val
val =
3.57126285475901