disp函数直接将内容输出在Matlab命令窗口中,
关键是看disp函数怎么把字符和数字在一起进行显示。
matlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数
%%以下是一个通过给定两点显示直线方程的程序,
%%该程序需要给出两个点的坐标,结果返回为y=kx+b的格式,且求得斜率
function [k,a1,b,type]=straight_line(A,B) % 输入,A,B两点坐标 V=B-A; a=inf; b=inf; type='undefined'; if A==B 'The two points are the same' return end if V(1)==0 && V(2)==0 disp('Enter two distinct points next time') return end if V(1)==0 type='vertical'; elseif V(2)==0 type='horizontal'; else type='oblique'; slope=atan2(V(2),V(1)); s=inv([A(1) 1;B(1) 1])*[A(2) B(2)]'; a=s(1); b=s(2); end switch type case 'vertical' disp('经过这两个点的直线方程为::'); disp(['x = ',num2str(A(1))]); case 'horizontal' disp(' 经过这两个点的直线方程为:: '); disp(['y =',num2str(A(2))]) ; case 'oblique' disp(' 经过这两个点的直线方程为:') ; disp(['y = ',num2str(a) ,' *x +',num2str(b)]); disp('斜率为:') k=num2str(a);%将符号数值化 end
disp(X)函数只有一个输入,当你有多个字符串作为输入时就会报错。
例如:
disp('Alice is ' , num2str(12) , ' years old!' );
就会报错--输入参数过多。
但是将里边的内容用中括号一括就成了一个字符串,
例如:
str=['Alice is ' num2str(12) ' years old!'];
disp(str);
上边这句话也就等价于:
disp=(['Alice is ' num2str(12) ' years old!']);
这就是加中括号的原因,而不是因为num2str(),
因为disp(num2str(12));也是正确的,因为里边就只有一个字符串。