问题集成使用对称的sym不可自由兑换翻倍”

8视图(30天)
集成的术语是有大小1 * 1,所以它仍然不是一个数组或矩阵,对称双显示问题。谁能帮我在这。
无法执行任务,因为价值类型的“符号”不可自由兑换“双”。
temp = int((1 /(依据(眼睛(Nr *元* 2 ^ (mrf) + ((C_z * B)。/(4 *不* (sin(θ))^ 2)))))
* exp(-(1 /(4 *不* (sin(θ))^ 2))* (P_bar) * B *(发票(眼睛(Nr *元* 2 ^ (mrf) + ((C_z * B)。/(4 *不* (sin(θ))^ 2))))* (P_bar)),“θ”0 /ππ/ 2);
使用symengine:造成的错误,不能包含剩余的符号函数调用表达式转换成数组的两倍。参数必须表达评估数量。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2023年3月25日
的一个或多个变量表达式中的符号函数。你应该调用的每个符号函数适当的变量。例如,如果B是一个象征性的函数在θ代码(θ)而不是B。
这将照顾,确切的错误消息。它可能会改变它的抱怨信谊类型的变量不能被转换成双。
现在,在MATLAB作业通常会完全覆盖输出变量,你不会得到一个错误在特定的行,但可能会在之后如果你有等步骤
y (K) = temp;
错误的情况下你可以如果你有做这个计算在MATLAB仿真软件功能块,使用合适的编码器。万博1manbetx外部调用能够调用符号函数,和你之前做过
temp = 0;
或者分配一个双前临时线。在这种情况下,模型将努力转换成i万博1manbetxnt()的结果自动翻倍。出于调试目的,分配到不同的变量和测试symvar()的其他变量来确保int分配结果之前临时工作。
注意,你只能使用MATLAB符号计算功能块如果加速度。
起初你可能会想“哦,是的,同样的问题可能会发生如果你是使用MATLAB编码器和MATLAB代码”(而不是在仿真软件),但是MATLAB编码器无法处理任何关于符号工具箱,所以这个问题自动转换为双只能发生在仿真软件。万博1manbetx
嗯,除了可能如果你使用新的“参数”设施声明类型的输出参数…我不知道这是如何工作的。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!