matlab矩阵的加法

matlab矩阵的加法,第1张

用 B = sum(A,3)

指令就可以,表示在第三维上相加。

把上面指令中的3改为1,表示各列上分别求和,改为2,表示各行上本别求和。

详见如下:

A(:,:,1) =

2 1

1 2

A(:,:,2) =

2 2

3 2

>> B = sum(A,3) %这是你想要的结果

B =

4 3

4 4

>> sum(A,1)

ans(:,:,1) =

3 3

ans(:,:,2) =

5 4

>> sum(A,2)

ans(:,:,1) =

3

3

ans(:,:,2) =

4

5

参见MATLAB 的help:

B = sum(A,dim) sums along the dimension of A specified by scalar dim The dim input is an integer value from 1 to N, where N is the number of dimensions in A Set dim to 1 to compute the sum of each column, 2 to sum rows, etc

求一个矩阵A所有元素的绝对值的和的实现方法为:在matlab命令窗口输入代码: sum(sum(abs(A))),其中用到的两个函数的功能如下:

1、abs(A) 求矩阵A中每个元素的绝对值

2、sum(A) 沿着矩阵A的第一个维度计算元素之和。当A为向量时,得到所有元素之和;当A为二维矩阵时,将沿着列求和,即得到一个行向量。

下面进行一个实例演示:

1、打开matlab软件,在命令窗口输入:A = [ 1 2 3;-1 -2 -3;1 0 -1],显示结果如下图所示:

2、接着,输入代码:sum(sum(abs(A))),根据sum函数的说明,对于二维矩阵,使用两次sum函数才能得到所有元素的和。此时得到结果14,即为上面示例矩阵A的所有元素的绝对值之和,如下图所示:

matlab 编写

 %先来计算Ej

sumtemp=zeros[1,m];

wj=zeros[1,m]; Ej=zeros[1,m];

Ejsum=0;

k=1/(logn);

pij=zeros[m,n]; %开辟一个0矩阵 mn的零矩阵;

  pij=[p11 p21 p31 pn1

p12 p22 p32

p1m p2mp3m]; %将pij值存入;

for j=1:1:m

for i=1:1:n

sumtemp(1,j)=pij(j,i)log(pij(j,i))+sumtemp(1,j);

end

Ej(1,j)=-ksumtemp(1,j);

end

for j=1:1:m

Ejsum=Ej(1,j)+Ejsum;

end

for j=1:1:m

wj(1,j)=(1-Ej(1,j))/(m-Ejsum);

end

%wj是一个1m的矩阵 存储了j指标的商权值wj。

希望对你有帮助~

楼上的是错误的

sum(x,2)表示矩阵x的横向相加,求每行的和,结果是列向量。

而缺省的sum(x)就是竖向相加,求每列的和,结果是行向量。

A>0的结果是得到一个逻辑矩阵,大小跟原来的A一致,

A中大于零的元素的位置置为1,小于等于零的位置置为0。

所以横向求和以后,就是求A中每行大于零的元素个数。

例如

>> A=randn(5)

A =

-043256 11909 -018671 011393 029441

-16656 11892 072579 10668 -13362

012533 -0037633 -058832 0059281 071432

028768 032729 21832 -0095648 16236

-11465 017464 -01364 -083235 -069178

>> sum(A>0,2)

ans =

3

3

3

4

1

就是说A的第一行大于零的有3个,第二行大于零的有3个,……,最后一行大于零的有1个

可先求列和,然后将列和组成的向量转置,最后再对转置后的向量求列和。例对矩阵A求所有元素的和,可:

sum((sum(A))')。

例:

A

=

16

3

2

13

5

10

11

8

9

6

7

12

4

15

14

1

>>

sum((sum(A))')

ans

=

136

matlab中小数取整的函数大约有四个:floor、ceil、round、fix

例如:若

A

=

[-20,

-19,

-155,

-145,

-11,

10,

11,

145,

155,

19,

20]

floor:朝负无穷方向靠近最近的整数,

floor(A)

ans

=

-2

-2

-2

-2

-2

1

1

1

1

1

2

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/11671353.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存