psychtoolbox でタスクを作成していますが、そのための格子が必要です。グレーティングを作成し、うまく機能していますが、マトリックス要素をゼロに設定して一部を切り取りたいだけです (現在は代わりにマスクを使用していますが、ソースの一部を切り取りたいのですが、格子自体)。
必要な部分を切り取るには、グレーティング マトリックス (A と呼ばれる) のインデックスが必要なので、ind2sub を使用することにしました。ただし、これは機能しません。
[I,J] = ind2sub(size(A),A);
'I' は 'A' と同じものを返し、'J' は ones(size(A)) を返します。
例
これが私がやりたいことの例です:
% A is a 3x3 matrix
% if I use "[I,J] = ind2sub(size(A),A);" I get the problem as described before:
% I = A and J = ones(3,3)
% When I use "[I,J] = ind2sub(size(A),[1:numel(A)]);" as suggested, I do get the
% following (which is a vector but can be reshaped into a 3x3 matrix):
I = [1 1 1 2 2 2 3 3 3]
J = [1 2 3 1 2 3 1 2 3]
I = reshape(I,[3,3]);
J = reshape(J,[3,3]);
K = I + J; % = [2 3 4; 3 4 5; 4 5 6]
for i=1:length(A)
for j=1:length(A)
if K(i,j)>*some threshold*
A(I(i),J(i))=0
end
end
end