フィルターのクリア

Summing nonsequential elements in a matrix

1 回表示 (過去 30 日間)
AJ
AJ 2013 年 5 月 15 日
Sorry if this is a very simple question, but how would I go about finding the sum of a set of predetermined elements in a matrix. So if I was using
a=magic(50),
I found that my idea of using the command
x = sum(a, (1, [5 7 19 33 34 35 36 47 50]))
does not provide the output (the sum of the elements in those positions) that I wanted. I would appreciate any help.

採用された回答

Cedric
Cedric 2013 年 5 月 15 日
編集済み: Cedric 2013 年 5 月 15 日
magic(50) is a square, 50x50 matrix. What do you want to achieve? Is it summing elements [5 7 19 33 34 35 36 47 50] of row 1 of a? If so, you'll want to do
s = sum( a(1,[5 7 19 33 34 35 36 47 50]) )
If you are unsure, work with smaller objects that can be easily displayed, e.g.
>> a = magic(5)
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> s = sum( a, (1, [2,4,5])) % First idea, is it right?
s = sum( a, (1, [2,4,5]))
|
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
>> a(1,[2,4,5]) % Let's see if we can at least access the
% correct set of elements before summing.
ans =
24 8 15
>> s = sum( a(1,[2,4,5]) ) % Let's see if we can sum them now.
s =
47
  1 件のコメント
AJ
AJ 2013 年 5 月 17 日
Thank you both for your answers. It was a silly error on my part

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

その他の回答 (1 件)

Thomas
Thomas 2013 年 5 月 15 日
works just fine
a=magic(5)
a =
17.00 24.00 1.00 8.00 15.00
23.00 5.00 7.00 14.00 16.00
4.00 6.00 13.00 20.00 22.00
10.00 12.00 19.00 21.00 3.00
11.00 18.00 25.00 2.00 9.00
sum(a(1,[3 5]))
ans =
16.00
which is the sum of a(1,3) =1 and a(1,5)=15 , total=16

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by