如何更改矩阵的特定行中的值

时间:2012-08-26 17:40:53

标签: matlab

我有问题在特定的“深度”中更改值矩阵

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
是否有人建议改进该代码?

1 个答案:

答案 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??