我在MATLAB上编写一个简单的脚本时遇到了一个愚蠢的问题:
z=(RASIS-LASIS)/norm(RASIS-LASIS);
v=(RASIS-PSIS)/norm(RASIS-PSIS);
y=cross(z,v)/norm(cross(z,v));
x=cross(y,z);
R_pel=[x',y',z'];
O_thigh=(LE+ME)/2;
Y=(HF-O_thigh)/norm(HF-O_thigh);
u=(LE-O_thigh)/norm(LE-O_thigh);
X=cross(Y,u)/norm(cross(Y,u));
Z=cross(Y,X);
R_thigh=[X',Y',Z'];
R_j=R_pel'*R_thigh;
ang_beta=asin(R_j(3,2))*(180/pi);
ang_alpha=-asin(R_j(1,2)/cos(ang_beta))*(180/pi);
ang_gamma=-asin(R_j(3,1)/cos(ang_beta))*(180/pi);
问题是,在命令窗口我插入RASIS
,LASIS
,PSIS
,LE
,ME
,HF
向量,然后单击回车,变量出现在右侧的工作空间列中,并带有我们分配的相对值;现在,我运行我的脚本来计算变量z
,v
,y
等,但我想要计算的变量只出现在工作区中。如何使它们出现在命令窗口中,例如,以这种形式出现(如果结果是矩阵):
ans= x x x
x x x
x x x
答案 0 :(得分:1)
如果你在行尾不用;
,MATLAB将在命令行显示该行的结果:
z=(RASIS-LASIS)/norm(RASIS-LASIS)
v=(RASIS-PSIS)/norm(RASIS-PSIS)
更好的方法是使用disp
功能:
disp(z);
disp(v);
%// etc...
更好的方法是使用[sprintf
]生成格式化输出:(http://www.mathworks.com/help/matlab/ref/sprintf.html)
sprintf('z:%10f\r\nv:%10f',z,v)
其中\r\n
是一个新行,%10f
将插入一个正好占用10个字符并在前面填充空格的浮点数(这有助于您保持对齐数字。您甚至可以指定小数位数例如,您可以将%10f
更改为%10.3f
。
答案 1 :(得分:0)