matlab 新手求分析 这段程序总是出错K=[31.8 34.1 36.9 39 41 43 45.7 47.4 49.5 51.5 53.5 55.5];rect=[640 0 640 512];for m=1:3;M1=int2str(m);Hu=zeros(1,50);Mu=zeros(1,12);for n=1:12;N1=int2str(K(n));for i=1:50;istr=int2str(i);M2=strcat('E:\P

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 03:07:00
matlab 新手求分析 这段程序总是出错K=[31.8 34.1 36.9 39 41 43 45.7 47.4 49.5 51.5 53.5 55.5];rect=[640 0 640 512];for m=1:3;M1=int2str(m);Hu=zeros(1,50);Mu=zeros(1,12);for n=1:12;N1=int2str(K(n));for i=1:50;istr=int2str(i);M2=strcat('E:\P

matlab 新手求分析 这段程序总是出错K=[31.8 34.1 36.9 39 41 43 45.7 47.4 49.5 51.5 53.5 55.5];rect=[640 0 640 512];for m=1:3;M1=int2str(m);Hu=zeros(1,50);Mu=zeros(1,12);for n=1:12;N1=int2str(K(n));for i=1:50;istr=int2str(i);M2=strcat('E:\P
matlab 新手求分析 这段程序总是出错
K=[31.8 34.1 36.9 39 41 43 45.7 47.4 49.5 51.5 53.5 55.5];
rect=[640 0 640 512];
for m=1:3;
M1=int2str(m);
Hu=zeros(1,50);
Mu=zeros(1,12);
for n=1:12;
N1=int2str(K(n));
for i=1:50;
istr=int2str(i);
M2=strcat('E:\PLIF\C’,M1,'\',N1,'\',N1,'','-0000000',istr,'.bmp');
I=imread(M2);
I2=imcrop(I,rect);
Hu(1,i)=median(median(I2));
end
Mu(n)=mean(Hu);
end
for j=1:12;
Id(j)=Mu(j)./Mu(1);
end
figure(m);
T=31.8:((55.5-31.8)/length(Mu)+1):55.5;
plot(T,Id)
end
Error using ==> mldivide
Matrix dimensions must agree.

matlab 新手求分析 这段程序总是出错K=[31.8 34.1 36.9 39 41 43 45.7 47.4 49.5 51.5 53.5 55.5];rect=[640 0 640 512];for m=1:3;M1=int2str(m);Hu=zeros(1,50);Mu=zeros(1,12);for n=1:12;N1=int2str(K(n));for i=1:50;istr=int2str(i);M2=strcat('E:\P
你的这一句:
M2=strcat('E:\PLIF\C’,M1,'\',N1,'\',N1,'','-0000000',istr,'.bmp');
其中
'E:\PLIF\C’
右边的那个单引号是全角字符,所以导致引号匹配混乱,本来作为目录分隔符的“\”被当作除号使用,所以导致出错.

其实像你这个生成路径名的语句完全可以写成下面这样的:
M2=sprintf('E:\\PLIF\\C%i\\%s\\%s-0000000%i.bmp',m,N1,N1,i);
或者,更简练的
M2=sprintf('E:\\PLIF\\C%i\\%s\\%s-%07i%i.bmp',m,N1,N1,0,i);

几点说明:
(1)前面的M1定义可以不要;
(2)printf系列函数的格式化字符串以“\”和“%”作为格式控制符,需要“\”的地方应写成“\\”,需要“%”的地方应写成“%%”;
(3)如果整数转换成字符串希望带前导0,可以使用类似这样的用法:sprintf('%010i',i),其结果字符串长度为10,如果i