私はこの行列を N x 3 の行列、たとえば A を持っています。
A =
2 3 9
7 1 2
5 4 7
14 15 13
13 10 9
8 6 5
11 8 10
16 12 11
そして、私は2N x 2の配列を構築したい、例えばb. この配列の行 2、3、および 9 には値 1、つまり A(1,:)=[2 3 9] があります。行 7 では、1 と 2 の値は 2 です。つまり、A(2,:) = [ 7 1 2] などです。出力は、
b =
2 0
1 2
1 0
3 0
3 6
6 0
2 3
6 7
1 5
5 7
7 8
8 0
4 5
4 0
4 0
8 0
私はこれがあなたが望んでいたものだと思います:
A = [2 3 9;
7 1 2;
5 4 7;
14 15 13;
13 10 9;
8 6 5;
11 8 10;
16 12 11];
[~,Aidxs1,~] = unique(A,'stable');
Aidxs2 = find(~ismember(1:numel(A),Aidxs1));
[row1,~] = ind2sub(size(A),Aidxs1);
[row2,~] = ind2sub(size(A),Aidxs2);
Bidxs1 = A(Aidxs1);
Bidxs2 = A(Aidxs2);
B = zeros(2*size(A,1),2);
B(Bidxs1,1) = row1;
B(Bidxs2,2) = row2;
そして、あなたは持っています:
B = [2 0
1 2
1 0
3 0
3 6
6 0
2 3
6 7
1 5
5 7
7 8
8 0
5 4
4 0
4 0
8 0]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加