我有问题在特定的“深度”中更改值矩阵
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:深度)。
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
是否有人建议改进该代码?
答案 0 :(得分: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??