MATLAB中内存分配时的下标赋值维数失配
为了优化我的代码,我做了内存分配,但现在我得到了这个错误,请看一看MATLAB中内存分配时的下标赋值维数失配,matlab,image-processing,video-processing,Matlab,Image Processing,Video Processing,为了优化我的代码,我做了内存分配,但现在我得到了这个错误,请看一看 I(:,:,:,:)=zeros(Height,Width,3,nframes,'uint8'); for i=1:nframes I(:,:,:,i) = read(xyloObj,i); end S=zeros(Height,Width,3,nframes,'uint8'); for i=2:nframes S(:,:,:,i)=I(:,:,:,i)-I(:,:,:,i-1); Q(:,:,
I(:,:,:,:)=zeros(Height,Width,3,nframes,'uint8');
for i=1:nframes
I(:,:,:,i) = read(xyloObj,i);
end
S=zeros(Height,Width,3,nframes,'uint8');
for i=2:nframes
S(:,:,:,i)=I(:,:,:,i)-I(:,:,:,i-1);
Q(:,:,:,i)=var(double(S(:,:,:,i)));
end
您在哪一行收到此错误?那一行中有哪些变量?S(:,:,:,i)=i(:,:,,:,i)-i(:,,:,,:,i-1);这是我得到错误的地方。放在<代码> i(:,,,,I)/<代码>和>代码> i(:,,:,I-1) >如果你得到相同大小的矩阵,如果是这样,检查I/S的大小,看看它们是否具有相同的维度,你的每个代码< > < /C> >的矩阵大小不一样,考虑用A来存储它们。我已经编辑了这个问题。我的错误的实际来源是这一行Q(:,:,:,i)=var(double(S(:,:,:,i)))。[var(double(S(:,:,:,i)))的大小是1*320*3,[Q(:,:,:,i)]的大小是240*320*3。