comparing and addition of two matrices

1 回表示 (過去 30 日間)
Bathrinath
Bathrinath 2014 年 6 月 10 日
コメント済み: dpb 2014 年 6 月 11 日
a=[9,41,48,0,0,0,0,0;15,47,56,0,0,0,0,0;25,67,0,0,0,0,0,0];b=[21;11;30]; I am having three rows in a and b. I need to compare a with b for example i am taking 21 from b and comparing with the first row of a, first row first column value is 9, but b value is 21 its greater than a so the remaining columns in first row should be added by 5 except zero [9, 46, 53,0,0,0,0,0]. Similarly in the second row of a has to be compared with second row of b [20,52,61,0,0,0,0,0]. Third row [25,72,0,0,0,0,0,0]. Finally my a=[9,46,53,0,0,0,0,0;20,52,61,0,0,0,0,0;25,72,0,0,0,0,0,0]. suggest with some points.
  4 件のコメント
dpb
dpb 2014 年 6 月 10 日
That isn't quite the rule he gave, though--he adds for all columns from 2:end irrespective of the first column comparison; it's only that first column that is dependent on the value in b, apparently. (At least that's what his example gives as a result.)
Geoff Hayes
Geoff Hayes 2014 年 6 月 10 日
Huh. I could have sworn the second row of b didn't have 5 added to the elements from 2:end. I see now how it does from 1:end though...

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

採用された回答

dpb
dpb 2014 年 6 月 10 日
Look up "logical addressing"...
>> ix=[b<a(:,1) a(:,2:end)>0];
>> a(ix)=a(ix)+5
a =
9 46 53 0 0 0 0 0
20 52 61 0 0 0 0 0
25 72 0 0 0 0 0 0
  2 件のコメント
Bathrinath
Bathrinath 2014 年 6 月 11 日
Thank you sir. I bow you for your logical thinking.
dpb
dpb 2014 年 6 月 11 日
Chuckles...thanks, glad I did seemingly get the intent correct; wasn't really sure if the actual example really was what was intended or not.

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

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by