MATLAB中displayFormula函数矩阵参数异常问题问询
displayFormula函数矩阵处理问题分析
基础测试代码及执行现象
displayFormula("c=b*a") syms a displayFormula("c=b*a", a, 6) displayFormula("c=b*a", a, [[1 2];[3 4]]) d=[[1 2];[3 4]] displayFormula("c=b*d")
- 第1行可正常执行;
- 第2行是第3行执行的必要前提;
- 第4行抛出错误;
- 第6行可正常执行并完整显示矩阵。
第6行的成功说明该函数可接收矩阵输入,但第4行的报错却显示其无法处理矩阵参数,第3行验证了该函数的详细调用形式可接收整数、浮点数、双精度数参数。
错误信息
Error using displayFormula Inconsistency between sizes of second and third arguments. Error in bugDisplayFormulaWithMatrices (line 4) displayFormula("c=b*a", a, [[1 2];[3 4]])
进一步测试验证
以下代码可进一步证明displayFormula处理矩阵时存在问题:
syms a b c d A Z A = [[a b];[c d]] a1 = 2; mix = subs(A, a, a1) Z = A*A Z1 = subs(A*A,a,a1) displayFormula('Z = A*A') displayFormula("Z = A*A", a, a1)
在Live Script中的输出如下:
Live Script中Z1的结果可将数值2代入显示,但displayFormula("Z = A*A")无法为变量代入数值;而displayFormula("Z = A*A", a, a1)不仅无法代入数值,还会导致显示完全折叠。
与官方文档描述不符
官方文档指出该函数的参数为'symstr',但以下非symstr参数的代码可正常执行:
A=[[1 2];[1 4]] displayFormula("A*A")
结论
displayFormula函数当前对矩阵的支持存在Bug,后续需优化以提升矩阵处理能力。
内容的提问来源于stack exchange,提问作者havasu78
相关产品推荐
相关产品推荐

