matlab中的disp函数和num2str()函数如何使用。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中的disp函数和num2str()函数如何使用。相关的知识,希望对你有一定的参考价值。
matlab中的disp函数和num2str()函数如何使用。经常看到disp和num2str()函数联合起来使用,这个时如何做的,最好举几个简单的例子,谢谢了!~
matlab的disp函数1.输出字符串:
>>disp(\'my test\')
my test
2.输出数字:
>> test=3;
>> disp(test)
3
3.同时输出字符串和数字:
>> test=3;
>> disp([\'my test=\',num2str(test)])
my test=3
Matlab函数num2str
在matlab中,无论是内建函数还是工具箱函数, 2很常见, 这可能是因为2英文two和to发音相同。而2写起来也比较简单。 所以很多转换类函数都用2来命名而非to。比如number to string, 不是命名为numTostr而num2str。
函数功能: 把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。
语法格式:
str = num2str(A)
把数组A中的数转换成字符串表示形式。
str = num2str(A, precision)
把数组A转换成字符串形式表示,precision表示精度, 比如precision为3表示保留最多3位有效数字, 例如 :
0.5345转换后为0.534,1.2345转换后为1.23。即从左边第一个不为0的数开始保留3个数值。
str = num2str(A, format)
按format指定格式进行格式化转换,通常\'%11.4g\'是默认的。
相关函数: mat2str, int2str, str2num, sprintf, fprintf
应用举例 :
>> A = [1, 2, 3];
>> B = num2str(A);
>> fprintf(\'%s\', B)
1 2 3>>
>> C = [1.564, 0.12345];
>> D = num2str(C, 3)
D =
1.56 0.123
>> D = int32(1)
D =
1
>> num2str(D, \'%.6f\')
ans =
1.000000 参考技术A
disp即display,可用来显示字符串、计算结果等 例子:
x= [1 2 3];
disp(['The values of x are: ', num2str(x)]);
结果显示为:
The values of x are: 1 2 3str = num2str(A)
把数组A中的数转换成字符串表示形式。str = num2str(A, precision),把数组A转换成字符串形式表示,precision表示精度, 比如precision为3表示保留最多3位有效数字, 例如0.5345转换后为0.534,1.2345转换后为1.23。即从左边第一个不为0的数开始保留3个数值。str = num2str(A, format),按format指定格式进行格式化转换,通常'%11.4g'是默认的。
MH=[51000,71400,128000,370000];
MT=[16,24,48,116];
h=600;
R=1;
for k=1:4
H=MH(k);
a=(h+H+2.*R)./2;
c=(H-h)./2;
b=sqrt(a.^2-c.^2);
s1=pi.*a.*b./MT(k);
vmax=2.*s1./(R+h);
disp(['Vmax' num2str(k) '=' num2str(vmax)])
end 参考技术C disp函数直接显示变量内容num2str函数则将数字转换成字符串后使用比如:A = [1 2 3];disp(A)num2str(A)
求助matlab中disp的用法
MH=[51000,71400,128000,370000];
MT=[16,24,48,116];
h=600;
for k=1:4
H=MH(k);
a=(h+H+2.*R)./2;
b=sqrt(a.^2-c.^2);
c=(H-h)./2;
s1=pi.*a.*b./MT(k);
vmax=2.*s1./(R+h);
disp(‘Vmax’,‘k’,vmax)
end
为什么这样,电脑总是报错,我想要的效果是,
输出
Vmax1=。。。
Vmax2=。。。
Vmax3=。。。
Vmax4=。。。
请问应该如何办到。
第一个:R没有定义
第二个:c的计算在使用后面
第三个:disp使用错误
disp(['Vmax' num2str(k) '=' num2str(vmax)])
MH=[51000,71400,128000,370000];
MT=[16,24,48,116];
h=600;
R=1;
for k=1:4
H=MH(k);
a=(h+H+2.*R)./2;
c=(H-h)./2;
b=sqrt(a.^2-c.^2);
s1=pi.*a.*b./MT(k);
vmax=2.*s1./(R+h);
disp(['Vmax' num2str(k) '=' num2str(vmax)])
end 参考技术A disp里面是个字符串,所以要有个函数把vmax数据从数字转化成字符串,这个用num2str实现
可以这样:
disp(['vmax=',num2str(vmax)]) 参考技术B 你可以在窗口中键入doc disp就会跳到MATLAB的帮助菜单里面了,里面有很多例子可以帮助你理解disp的用法或者你也可以点击help的deom菜单搜索disp也会跳到关于disp的用法的 参考技术C 这是些什么东西啊 参考技术D 使用中括号的原因不仅仅是disp的原因。
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));也是正确的,因为里边就只有一个字符串。
以上是关于matlab中的disp函数和num2str()函数如何使用。的主要内容,如果未能解决你的问题,请参考以下文章