我试图让 Matlabs 的 MuPad 像 MathCad 一样漂亮和方便。
假设两个变量赋值:
x_a:=2*unit::mm;
y_b:=5*unit::mm;
我想要一个漂亮的(用Tex排版)输出,比如
z = x_a + y_b = 7 mm
我已经设法通过使用来做到这一点output::mathText(...)
:
output::mathText(hold(z)," = " , (z:=hold(x_a+y_b)) , " = " , z)
看起来如所愿:
但这不是很方便且不可读。所以我试图把它包装成一个宏或一个函数:
evalPrint(z,x_a+y_b)
我怎样才能做到这一点?
我尝试了什么:
我写了一个程序如下:
evalPrint :=
proc(x,y) begin
output::mathText(hold(x)," = " , (x:=hold(y)) , " = " , x)
end_proc:
但我只是得到
我错过了什么?
关于horchler 的回答:他的第一个解决方案在某种程度上不起作用,而第二个解决方案则:
程序:
evalPrintVal := proc(x,y) option hold;
begin
output::mathText(x, " = ", evalassign(x,y));
end_proc:
evalPrintEq := proc(x,y) option hold;
begin
output::mathText(x, " = ", evalassign(x,y), " = ", context(y));
end_proc:
evalPrintEq2 := proc(x,y) option hold;
begin
output::mathText(x, " = ", y, " = ", evalassign(x,y));
end_proc:
称呼:
evalPrintVal(U_1,15000*unit::V);
evalPrintEq(E_h, U_1*1.05);
evalPrintEq2(E_h, U_1*1.05);
输出: