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 大。