1.Sprintf()函数
Matlab的官方解释为:
str = sprintf(formatSpec,A1,…,An)
[str,errmsg] = sprintf(formatSpec,A1,…,An)
str = sprintf(formatSpec,A1,…,An) 根据 formatSpec 的列顺序设置数组 A1,…,An 中数据的格式,并将结果返回到str。
如果操作失败,[str,errmsg] = sprintf(formatSpec,A1,…,An) 将以字符向量形式返回一条错误消息。否则,errmsg为空。
小汪同学理解的sprintf()函数是将其他变量,如数字,字符串等按照指定的格式转化为字符串形式,简单的说就是输出数据。
例1:
int a=16;
b=a^2+a-a^3;
str_1=sprintf('16^2+16-16^3等于%d', b);
disp(str_1)
例2:
%% 本程序求解黄金分割率的比值
% r^2 - r - 1 = 0的解就是比值。
p = [1 -1 -1];
% 此数组代表了上式的二次项系数、一次项系数和常数项。
r = roots(p);
print_str = sprintf('r^2 - r - 1 = 0的结果是:%f和%f\n', r);
disp(print_str);
再补一点常识部分内容
int:%d
string:%s
float:%f
空格:%t
换行:%n
是不是忘记这些数据类型的区别了 小汪同学给您准备好了
一、定义不同
1、int为整数型,用于定义整数类型的数据 。
2、float为单精度浮点型,能准确到小数点后六位 。
3、double为双精度浮点型,能准确到小数点都十二位 。
4、char为字符型,用于定义字符类型的数据。
二、数据范围不同
1、int:数的范围为-(2的31次方-1)到(2的31次方-1),数字为-2 147 483 647~2 147 483 647。
2、double:表示的范围为+1.111111111111111111111*2^1023(1.后面52个1)为1.7*10^308。负数亦然。
3、float:整数极限为3.4*10^38,负数亦然。
4、char:-128- 127。
2.fprintf()函数:
官方解释是:
1)fprintf(formatSpec,A1,…,An) 设置数据的格式并在屏幕上显示结果。
2)fprintf(fileID,formatSpec,A1,…,An) 按列顺序将 formatSpec 应用于数组 A1,…An 的所有元素,并将数据写入到一个文本文件。fprintf 使用在对 fopen 的调用中指定的编码方案。
3)nbytes = fprintf(___) 使用前述语法中的任意输入参数返回 fprintf 所写入的字节数。
那小汪同学理解它的用法是
1.在屏幕中显示结果,其作用相当于disp函数,用法如下:
a=2022721;
b='数值是%d\n';
fprintf(b,a)
2.通常与fopen函数一起使用,其用法是首先使用fopen函数按照指定方法打开一个文件,并且获取这个文件的句柄,将数据按照指定格式写到这个文件中。
如下所示:
a=1:10;
fileID=fopen('xiaowangtongxue.txt','w');
fprintf(fileID,'%d\n',a);%位置,格式,内容%
fclose(fileID);
当然还有其他的输出函数 小汪同学与您下期不见不散