How to subtract vectors with different number of entries?

9 ビュー (過去 30 日間)
Sandy
Sandy 2013 年 2 月 28 日
I have two data files with two lines of data each.
EX:
Data Set 1:
1970 254.5
1980 264.5
1990 234.5
2000 234.7
Data Set 2:
1970 234.5
1980 234.6
2000 456.7
2010 234.7
I have to subtract Column 2 of data set one from Column 2 of data set 2. But in order to to this the first columns must match up. How can I write a code where it skips the entries where the entries in column one don't match up.
  1 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 28 日
Post what should be the result

サインインしてコメントする。

採用された回答

Sean de Wolski
Sean de Wolski 2013 年 2 月 28 日
D1 = [
1970 254.5
1980 264.5
1990 234.5
2000 234.7 ];
D2 = [
1970 234.5
1980 234.6
2000 456.7
2010 234.7];
%Where do they intersect?
[~,ia,ib] = intersect(D1(:,1),D2(:,1));
%Subtract intersecting parts:
dD = D1(ia,2) - D2(ib,2)

その他の回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 28 日
a=[1970 254.5
1980 264.5
1990 234.5
2000 234.7]
b=[1970 234.5
1980 234.6
2000 456.7
2010 234.7]
idx=find(a(:,1)-b(:,1)==0)
c=b(:,2)
c(idx)=b(idx,2)-a(idx,2)

Sandy
Sandy 2013 年 2 月 28 日
Both of these work perfectly. Thanks!

カテゴリ

Help Center および File ExchangeSimulink についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by