您的位置:首页 > 其它

matalb的sprintf函数及实例load(sprintf('%s.mat',face_name));

2018-03-27 17:39 465 查看
sprintf: 将数据格式化为字符串

clear,clc;
face_name='Yale'; % AR, Feret, Yale
load(sprintf('%s.mat',face_name));


没有任何输出,只是起到方便加载数据集



face_name='Yale'; % AR, Feret, Yale
a=(sprintf('%s',face_name));


输出 a=’Yale’

浮点格式

%.5f小数点后面

sprintf('%.5f',pi);%1

a=sprintf('%.5f',pi);%2


1.没有输出。

2.输出

a =

3.14159


%.5e科学计数小数点后面

A = 1/eps;
str_e = sprintf('%0.5e',A)

>>str_e =
'4.50360e+15'


%.5g总的数5

str_g = sprintf('%0.5g',A)
>>str_g =
'4.5036e+15'


str = sprintf('%025d',[123456])


输出25个宽度的数字。

str =

0000000000000000000123456


str = sprintf('%d',round(pi))


将双精度值显式转换为整数。都是字符char类型

str =
'3'


情况如图:



% save .bmp to .mat
yale=[];
for i=1:15 % 15 subjects
for j=1:11 % 11 images per subject
tmp=imread(sprintf('yalefaces/%02d/s%d.bmp',i,j));
yale(:,:,j,i)=imresize(tmp,0.5);%将图像的长宽缩小二分之一。
end
end


imresize:调整图像大小。 示例B = imresize(A,scale) 返回图像 B,它是将 A 的长宽大小缩放 scale 倍之后的图像。输入图像 A 可以是灰度、RGB 或二进制图像。如果 A 有两个以上维度,则 imresize 只调整前两个维度的大小。如果 scale 在 [0, 1] 范围内,则 B 比 A 小。如果 scale 大于 1,则 B 比 A 大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: