0

matlabを使用して、1つの行のみを削除し、残りの行を返す出力を取得したいと思います。例:行列を考えてみましょう

A = [1  1  1; 2  2  2; 3  3  3; 4  4  4]

ケース1の場合、最初のマトリックスが目的の行を表示し、他のマトリックスが残りの行を表示する別のマトリックスが必要です。

この場合B=1、出力は2つの行列になり、最初の行列は次のようになります。

C = [1  1  1]

そして別のマトリックスは

D = [2  2  2; 3  3  3; 4  4  4]

次の場合も同様B=2

それから

C = [2  2  2]
D = [1  1  1; 3  3  3; 4  4  4]

そのような場合のMATLABプログラムを作成するにはどうすればよいですか?

4

3 に答える 3

3

Aとの定義を考慮して、これを試してくださいB

C = A(B,:)
D = A(setdiff(1:size(A,1),B),:)

これらを関数に簡単にラップできると思います。

于 2013-02-20T10:37:03.727 に答える
2

私はあなたがこのようなものを探していると思います

 A =

 1     1     1
 2     2     2
 3     3     3
 4     4     4

row=2;
A(row,:)=[]

A =

 1     1     1
 3     3     3
 4     4     4

元の行列を保持して行を保存するには、次の関数のようなものを使用します。

function [ A,out_row ] = removerow( A,row )
%row is the number of the row you want to remove, and 
%A is the matrix you want it removed from.
out_row=A(row,:);
A(row,:)=[];
end
于 2013-02-20T10:43:07.490 に答える
0

次の方法で行を抽出できます。

C = A(1,:)
C =

   1   1   1

この方法で複数の行を抽出できます 2:4 は [ 2 3 4 ] に展開されます

D = A(2:4,: )
D =

   2   2   2
   3   3   3
   4   4   4

'A(1, :) の 2 番目のコロンは、使用可能なすべての列に展開されます。

お役に立てれば

于 2013-02-20T10:39:14.237 に答える