psz=length(pic)
p=0; %masking counter
for i=1:outs:(psz) % dividing in blocks
for j=1:outs:(psz)
p=p+1
blocks(:,:,p)=pic(i:i+outs-1,j:j+outs-1);
ins(:,p)=reshape(blocks(:,:,p)',1,ins')';
end
end
我收到以下错误
使用重塑时出错 要重新修复元素的数量,不得更改。
火车出错(第30行) 插件(:,P)=重塑(块(:,:,P)”,1,插件 ')';
答案 0 :(得分:0)
将块(:,:,p)转换为列向量应该清除错误,只要块(:,:,p)中的元素数与ins的行长度相同
col_vec = blocks(:,:,p);
ins(:,p)= col_vec(:);
答案 1 :(得分:0)
blocks(:,:,p)
的大小为outs
- 按 - outs
,因此要制作列向量,必须为(outs*outs)
- by - 1
。为此,命令将是:
ins(:,p)=reshape(blocks(:,:,p)',outs*outs,1); % no need for '
但,请确保size(ins,1)
为outs*outs
,否则无效。出于好奇,ins
(和blocks
的大小是多少?此外,请确保您确实需要'
上的blocks
,因为该命令可以使用或不使用。