matlab中for循环的用法例子有哪些?

matlab中for循环的用法例子有哪些?,第1张

如下图:

for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式条件表达式末尾循环体){中间循环体;}。

注意事项:

1、for循环中的变量可以是一个也可以是多个。

2、for循环中语句可以为语句体, 语句体外加大括号"{}"将参加循环的语句括起来。

3、for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句。

% 打开并以UNIT8的格式读入音频文件

fid=fopen('33.wav','rb')

a=fread(fid,inf,'uchar')

 

% 获取音频数据长度(44可能是wav文件头,不太确定),关闭文件

n=length(a)-44

fclose(fid)

 

% 读入图像文件

io=imread('kkk.bmp')

 

% 获取图像文件的行列数(高和宽)

[row col]=size(io)

 

% 把图像数据转换为向量

wi=io(:)

 

% 如果图像像素数比音频数据多,则报错退出

if row*col>n

 error('文件太小')

end

 

% 加水印后的音频数据初始值设为原音频数据

watermarkedaudio=a

 

% 水印长度

watermarklength=row*col

 

% 通过循环对音频数据设置水印,即把最高位设为对应的图像数据(这里看起来也有问题:1、bitset的第3个参数原则上只能是0或1,所有非0值都被视为1——图像是二值的?2、水印长度watermarklength没用上)

for k=1:row*col

 watermarkedaudio(44+k)=bitset(watermarkedaudio(44+k),1,wi(k))

end

 

% 画图比较加水印前后的音频数据

figure

subplot(2,1,1)plot(a)

subplot(2,1,2)plot(watermarkedaudio)

 

% 保存加水印之后的音频数据

fid = fopen('2.wav', 'wb')

fwrite(fid,watermarkedaudio,'uchar')

fclose(fid)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12133358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存