reshape()命令导致从循环中引发错误

时间:2013-10-03 11:09:04

标签: matlab neural-network reshape

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
  1. 所以首先我要尝试使用神经网络为pca重现sanger规则,所以如果somone想要讨论它或给他我的代码他可以给我发消息:)
  2. 我收到以下错误

    使用重塑时出错 要重新修复元素的数量,不得更改。

    火车出错(第30行)         插件(:,P)=重塑(块(:,:,P)”,1,插件 ')';

2 个答案:

答案 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,因为该命令可以使用或不使用。

相关问题