zoukankan      html  css  js  c++  java
  • matlab中 fprintf 和disp的用法

      >> disp('pi=',pi)
     ??? Error using ==> disp
    Too many input
    arguments.

    >> disp(sprintf('圆周率pi= %8.5f',pi))
     圆周率pi=  3.14159

    想把字符串pi=和变量pi的值显示在一行上,试用disp(′pi=′,pi),回答这是非法的.这时应该用sprintf函数,它可把数据按要求的格式转换为字符串,再把它与需要显示的字符串组装成一个长字符串,使显示格式非常灵活,人机界面更为友好.如键入
    st=sprintf(′ 圆周率pi= %8.5f′,pi);
    disp(st)
    结果为
    圆周率pi=3.14159
    其中,%为数据格式符,f表示十进制浮点,8.5表示数字的长度为8位,小数点后5位.从%到f之间的字符都是不显示的,它只指出显示数据pi的格式,跟C的printf很相似。

    字 符 串 转 换

    abs

    字符串到ASCII转换

    dec2hex

    十进制数到十六进制字符串转换

    fprintf

    把格式化的文本写到文件中或显示屏上

    hex2dec

    十六进制字符串转换成十进制数

    hex2num

    十六进制字符串转换成IEEE浮点数

    int2str

    整数转换成字符串

    lower

    字符串转换成小写

    num2str

    数字转换成字符串

    setstr

    ASCII转换成字符串

    sprintf

    用格式控制,数字转换成字符串

    sscanf

    用格式控制,字符串转换成数字

    str2mat

    字符串转换成一个文本矩阵

    str2num

    字符串转换成数字

    upper

    字符串转换成大写

    在许多情况下,希望把一个数值嵌入到字符串中。几个字符串转换可完成这个任务。

    » rad=2.5; area=pi*rad^2;

    » t=[' A circle of radius ' num2str(rad) ' has an area of ' num2str(area) ' . ' ] ;

    » disp(t)

    A circle of radius 2.5 has an area of 19.63.

    这里函数num2str用来把数值转换成字符串,字符串连接用来把所转换的数嵌人到一个字符串句子中。按类似方式,int2str把整数转换成字符串。无论是num2str还是int2str都调用函数sprintf,它用类似C语言语法把数值转换成字符串。

    函数fprintf经常是函数disp的一个有用替换,由于它提供了对结果更多的控制。当准备把格式化的数据写到一个文件中去时,按缺省它在命令窗口显示结果。例如,

    » fprintf(' See what this does ')

    See what this does»

    » fprintf(' See what this does ')

    See what this does

    在上面第一个例子里,fprintf显示字符串,然后立即给出MATLAB提示符。相反,在第二个例子里, 插入一个新行字符,在MATLAB提示符出现之前创建一个新行。

    无论fprintf还是sprintf以同样方式处理输入参量,但fprintf把输出送到显示屏或文件中,而sprintf把输出返回到一个字符串中。例如,上面的例子用num2str可重写为

    » t=sprintf(' A circle of radius %.4g has an area of %.4g. ', rad, area);

    » disp(t)

    A circle of radius 2.5 has an area of 19.63.

    » fprintf(' A circle of radius %.4g has an area of %.4g. ' , rad, area)

    A circle of radius 2.5 has an area of 19.63.

    这里%.4g是用在函数num2str中的数据格式。%.4g就是用指数或定点标记,不管哪一种更短些,只显示至4位数字。除了g格式,还可用e (指数)和f (定点)转换。表6.2表明在各种不同转换下,如何显示pi结果。

    表6.2

    数 值 格 式 转 换 例 子

    命令

    结果

    fprintf(' %.0e ',pi)

    3e+00

    fprintf(' %.1e ',pi)

    3.1e+00

    fprintf(' %.3e ',pi)

    3.142e+00

    fprintf(' %.5e ',pi)

    3.14159e+00

    fprintf(' %.10e ',pi)

    3.1415926536e+00

    fprintf(' %.0f ',pi)

    3

    fprintf(' %.1f ',pi)

    3.1

    fprintf(' %.3f ',pi)

    3.142

    fprintf(' %.5f ',pi)

    3.14159

    fprintf(' %.10f ',pi)

    3.1415926536

    fprintf(' %.0g ',pi)

    3

    fprintf(' %.1g ',pi)

    3

    fprintf(' %.3g ',pi)

    3.14

    fprintf(' %.5g ',pi)

    3.1416

    fprintf(' %.10g ',pi)

    3.141592654

    fprintf(' %.8.0g ',pi)

    3

    fprintf(' %.8.1g ',pi)

    3

    fprintf(' %.8.3g ',pi)

    3.14

    fprintf(' %.8.5g ',pi)

    3.1416

    fprintf(' %.8.10g ',pi)

    3.141592654

    注意,对ef 格式,小数点右边的十进制数就是小数点右边要显示的多少位数字。相反,在g的格式里,小数点右边的十进制数指定了显示数字的总位数。另外,注意最后的五行,其结果指定为8个字符长度,且是右对齐。在最后一行,8被忽略,因为指定超过了8位。

    概括起来,当需要比缺省函数dispnum2strint2str所提供的更多的控制时,fprintfsprintf是有用的。

    函数str2mat把一列的几个字符串转换成一个字符串矩阵。例如,

    » a=' one ' ; b= ' two ' ; c= ' three ' ;

    » disp(str2mat(a, b, c, ' four '))

    one

    two

    three

    four

    从上面看不明显,上面的每行有同样数目的元素。较短行用空格补齐,使结果形成一个有效的矩阵

    在逆方向转换中,有时是很方便的。

    » s= ' [1 2; pi 4] ' % a string of a MATLAB matrix

    s =

    [1 2; pi 4]

    » str2num(s)

    ans =

    1.0000 2.0000

    3.1416 4.0000

    » s=' 123e+5 ' % a string containing a simple number

    s =

    123e+5

    » str2num(s)

    ans =

    12300000

    函数str2num不能接受用户定义的变量,也不能执行转换过程的算术运算。

     

    pcolor(X,Y,C)函数的用法: X,Y是用来定位的,C是用来填充颜色的。

    当X,Y是向量时,X与C的列对应,Y与C的行对应,因此向量X和Y的维数必须要求与C的列与行统一。所以使用时注意检查X,Y,C的大小和维数。

    其后面最好用上函数:shading interp;

  • 相关阅读:
    13.11.1 __bases__类属性:
    logstash 删除message host字段
    数据科学:Oracle 并购 DataScience 公司提升机器学习能力
    继承
    python 创建子类
    Python第三方库的使用
    13.8.1 staticmethod()和 classmethod()内建函数
    实例方法和类方法
    CSS常用遮罩层
    CSS常用遮罩层
  • 原文地址:https://www.cnblogs.com/jameskun77/p/3223931.html
Copyright © 2011-2022 走看看