2016-08-10 5 views
-2

ある行の第3列要素を減算する必要がある私は、MATLABで12x4のマトリクスを有するIは行列12 * 4を有している、と私は異なる

A =[-1, 3, 152, 41.5 ; 
    3, 9, 152, 38.7 ; 
    9, 16, 152, 38.7 ; 
    16, 23, 129, 53.5 ; 
    23, 29, 129, 53.5 ; 
    29, 30, 100, 100 ; 
    30, 30.5, 83,  83 ; 
    30.5, 31, 83,  83 ; 
    31, 35, 83,  83 ; 
    35, 41, 129, 53.5 ; 
    41, 48, 129, 53.5 ; 
    48, 55, 152, 38.7 ] ; 

とI行の変化を見つける必要があります2行目の3列目の要素を前の行から3列目の要素を差し引くことで、それ以外の場合は3行目に移動します。減算場合、私は、からなるであろう23の出力Bの第1列の要素を持って

B = [16, 23; 
     29, 29; 
     30, 17; 
     35, 46; 
     48, 23] 

は、例えば、第3および第4行3列の要素は、異なる:

回答の形式でなければなりません4行1列目の要素。

+0

この質問はそれほど興味がありませんし、他の人によって下されます。 – blauerschluessel

+0

質問をフォーマットしてください:http://stackoverflow.com/editing-help – Trogdor

答えて

1
%Given matrix 
A =[-1,  3, 152, 41.5 ; 
    3,  9, 152, 38.7 ; 
    9, 16, 152, 38.7 ; 
    16, 23, 129, 53.5 ; 
    23, 29, 129, 53.5 ; 
    29, 30, 100, 100 ; 
    30, 30.5, 83, 83 ; 
    30.5, 31, 83, 83 ; 
    31, 35, 83, 83 ; 
    35, 41, 129, 53.5 ; 
    41, 48, 129, 53.5 ; 
    48, 55, 152, 38.7 ] ; 

B=A(:,2:3); %Taking out the columns of our interest 
B = B([diff(B(:,2))~=0; true],:); %Storing only those rows whose consecutive elements in the third column of A are different 
B=[B(1:end-1,1) abs(diff(B(:,2)))] % First column is according to your condition and second column is the difference 
+0

ありがとう、その素晴らしい!!!良い仕事 – walexwisdom

+1

ハハハ。若い鞭打ち人たちにエレガントなコードを教えるための@Sardar_Usamaをうまくやった*と*正しいエチケット! :p –

関連する問題