matlab错误 5
运行出现:Incompleteormisformedexpressionorstatement就是这个出现问题dx(3)=(h*k0*exp(-E/(R*x(3)))*(...
运行出现:Incomplete or misformed expression or statement
就是这个出现问题dx(3)=(h*k0*exp(-E/(R*x(3)))*(1/Cp)*x(1)+Q01*(1/V1)*(T01-x(3))-((Ua*Qcw1*Cpc)/(Ua+Qcw1*Cpc))*(x(3)-Tci1)*(1/V1); 展开
就是这个出现问题dx(3)=(h*k0*exp(-E/(R*x(3)))*(1/Cp)*x(1)+Q01*(1/V1)*(T01-x(3))-((Ua*Qcw1*Cpc)/(Ua+Qcw1*Cpc))*(x(3)-Tci1)*(1/V1); 展开
展开全部
1、首先,你贴出的程序与报错信息并不相符。猜测你是在遇到错误之后,把原来的
Img_gray = imresize(I_water,[512,512]);改成了
Img_gray = imresize(I_water,[513,513]);
2、错误的原因:
你在前面使用imresize把水印大小设置成512x512(或513x513,道理相同),而后面的for循环则是按照载体图像的尺寸进行的,一旦载体图像的宽或高大于512(或513),当循环执行到i或j为513(或514)时,访问Img_bw(i,j)就会出现数组索引越界。
3、解决的方法:
首先应该明确:如果载体图像足够小(宽高均小于512),则不会出错;而如果载体图像比较大,要想不出错,有几种不同的处理方式,你可以根据自己的需要选择:
(1)通过imresize把水印图像调整到足够大,例如:
.......I_water = imread('d:\shuiyin.jpg');%----------------------载体图像读入---------------------Img_cover = double(imread('d:\1.png'));[nrow,ncol] = size(Img_cover);Img_gray = imresize(I_water,[nrow,ncol]);Img_gray = rgb2gray(Img_gray);Img_bw = im2bw(Img_gray,0.9); .......
(2)在for循环中加入判断,如果i或j超过512,则该像素不注入水印(具体代码从略):
(3)对for循环体中注入水印的语句使用试探结构,使得索引越界时不报错:
for i =1:nrow for j = 1:ncol Img_bin = dec2bin(Img_cover(i,j),8); try % -----> 新加入的语句 if Img_bw(i,j)==0; Img_bin(N)='0'; else Img_bin(N)='1'; end; end % -----> 新加入的语句 Img_imbeded(i,j) = bin2dec(Img_bin); endend
Img_gray = imresize(I_water,[512,512]);改成了
Img_gray = imresize(I_water,[513,513]);
2、错误的原因:
你在前面使用imresize把水印大小设置成512x512(或513x513,道理相同),而后面的for循环则是按照载体图像的尺寸进行的,一旦载体图像的宽或高大于512(或513),当循环执行到i或j为513(或514)时,访问Img_bw(i,j)就会出现数组索引越界。
3、解决的方法:
首先应该明确:如果载体图像足够小(宽高均小于512),则不会出错;而如果载体图像比较大,要想不出错,有几种不同的处理方式,你可以根据自己的需要选择:
(1)通过imresize把水印图像调整到足够大,例如:
.......I_water = imread('d:\shuiyin.jpg');%----------------------载体图像读入---------------------Img_cover = double(imread('d:\1.png'));[nrow,ncol] = size(Img_cover);Img_gray = imresize(I_water,[nrow,ncol]);Img_gray = rgb2gray(Img_gray);Img_bw = im2bw(Img_gray,0.9); .......
(2)在for循环中加入判断,如果i或j超过512,则该像素不注入水印(具体代码从略):
(3)对for循环体中注入水印的语句使用试探结构,使得索引越界时不报错:
for i =1:nrow for j = 1:ncol Img_bin = dec2bin(Img_cover(i,j),8); try % -----> 新加入的语句 if Img_bw(i,j)==0; Img_bin(N)='0'; else Img_bin(N)='1'; end; end % -----> 新加入的语句 Img_imbeded(i,j) = bin2dec(Img_bin); endend
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询