0

特定の「深さ」で値マトリックスを変更する際に問題があります

R = 6;
C = 12;
depth = 6

for j=1:depth;
    result(:,:,j)=randint(R,C,[0 2])
    for i=1:R,
        A(i,:,j)=randperm(C);
    end
end

私が現在使用している次のコードですが、このコードはまだ1番目の深さからしか機能しません。次に、私のコードが 3 番目の深さ (h=3:depth) から機能することを望みます。

for h=3:depth;       
    idx = bitand(A(:,:,h)>= 1, A(:,:,h)<= 4); 
    result([false(size(idx,1),1) idx(:,1:end-1)]) = 3
    result(idx)=1
end

そのコードを改善するための提案はありますか??

4

1 に答える 1

1

この質問はかなり漠然としています。3D インデックスがどのように機能しているかだけを知りたい場合は、次のコードを試してみてください。

%# Construct A and result.
result = rand(R, C, depth);
A = 10 * rand(R, C, depth);

idx = (A >= 1) & (A <= 3);
result([false(size(A, 1), 1, size(A, 3)) idx(:,1:end-1,:)]) = 1; %# or 3??
于 2012-08-26T20:25:32.217 に答える