lihuidashen

 

 

  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));也是正确的,因为里边就只有一个字符串。

 

分类:

技术点:

相关文章: