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

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’


浮点格式

  1. %.5f小数点后面
sprintf('%.5f',pi);%1

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

1.没有输出。

2.输出

a =

3.14159
  1. %.5e科学计数小数点后面
 A = 1/eps;
str_e = sprintf('%0.5e',A)

>>str_e = 
'4.50360e+15'
  1. %.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 大。

扫描二维码关注公众号,回复: 2779133 查看本文章

猜你喜欢

转载自blog.csdn.net/dongyanwen6036/article/details/79716165
今日推荐