Matlab中求和

Matlab中求和

一、sum函数

1、如果x是一个向量,则计算向量的元素之和,S=sum(A)如:

>> x = randi(10,1,10)
x =
     7     1     9    10     7     8     8     4     7     2
>> sum(x)
ans =
    63
%如果x的数组,则是计算数组的列之和,如:
>> x = pascal(4,2)
x =
    -1    -1    -1    -1
     3     2     1     0
    -3    -1     0     0
     1     0     0     0
>> sum(x)
ans =
     0     0     0    -1

2、S = sum(A,dim),按照指定维度求和

  1. **dim = 1,表示对列求和
  2. dim = 2,表示对行求和
  3. dim = 3,表示对页求和 …,
  4. 依次类推**

例如:

>> a = toeplitz(1:5)
a =
     1     2     3     4     5
     2     1     2     3     4
     3     2     1     2     3
     4     3     2     1     2
     5     4     3     2     1
>> sum(a,1)
ans =
    15    12    11    12    15
>> sum(a,2)
ans =
    15
    12
    11
    12
    15

3、S = sum(___,outtype)指定输出结果的数据类型

  1. 可选字符串参数为’double’,‘default’和’native’ 一般来说,默认是*‘default’*
  2. 有时候我们对整数求和,想要结果输出为double类型,就可以用double这个参数**

比如:

>> a = single(1:4)
a =
     1     2     3     4
>> class(sum(a,'double'))
ans =
double
>> class(sum(a))
ans =
single

4、求和中是否忽略NaN值

  1. Matlab的数据类型虽然比较全面,但是数据类型转化和其他语言不是完全一致,因此用的时候需要小心处理
  2. 有时候在求和的时候,数据中有NaN值影响,导致计算结果出现NaN,一般的处理方式是用isnan函数排除NaN值,有了这个选项,就简单了

如:

>> a = rand(1,6);a(randperm(6,2)) = NaN
a =
    0.7060    0.0318       NaN    0.0462    0.0971       NaN
>> sum(a)
ans =
   NaN
>> sum(a,'omitnan')
ans =
    0.8812

二、循环求解

s=0;

for i=1:100

s=s+(i^bai2+7*i)^3;

三、其他方法

>> syms k

>> symsum((k.^2+7*k).^3,1,100)

你可能感兴趣的:(Matlab,matlab)