2012-02-10 27 views
4

行列からいくつかの要素をコピーしようとしていますが、行全体ではなく1つの要素をコピーしようとしています。次の行列で例えばMATLAB:配列の特定の部分をコピーする

、:

a = 1 2 
    3 4 
    5 6 
    7 8 
    9 0 

がどのように私は、次のデータをコピーするのでしょうか?

b = 1 
    3 
    5 

すなわち行は1:列1の3だけ...私はあなたがこのような列全体取り除くことができることを知っている:

b = a(:,1) 

を...と私はだけで行うことができることに感謝最後の2行をダンプしますが、私は非常にリソース集約的なソリューションを実行しているので、より効率的なコードを使用したいと思います。

+2

既に答え:) 'B =(1を書い1); 'カラムを'削除 'するには、 'a(:、1)= [];でカラムを' unset ' – Cheery

答えて

4

要素は列優先順に格納されています。つまり、単一のインデックスを使用して、次のように言うこともできます。

b = a(1:3); 

最初の3つの要素は1,3,5です。同様に、(6)、2(7)4等と更に理解するsub2ind法を見ている:3:

http://www.mathworks.com/help/techdoc/ref/sub2ind.html

1

他の列を参照しているため、2番目の列が「削除」されていません。

あなたはMatlabのドキュメントのいくつかを読んでください、彼らは行列の部分にアクセスするための構文についてのいくつかの助けを提供します。MATLABでの行列で

http://www.mathworks.com/help/techdoc/learn_matlab/f2-12841.html#f2-428

関連する問題