MATLAB中如何求矩阵中所有元素与该元素所在的列的所有元素之和的比值,组成一个新的矩阵

来自:    更新日期:早些时候
matlab 中矩阵怎么求所有元素的和~

可先求列和,然后将列和组成的向量转置,最后再对转置后的向量求列和。例对矩阵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

求一个矩阵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的所有元素的绝对值之和,如下图所示:

想了一下,想到2个方法

方法一:用循环

[m,n]=length(A)

result=zeros(m,n)

b=sum(A)%将A按列求和。

for i=1:n

c(:,i)=A(:,i)/b(i);

end

c

方法2:

[m,n]=size(A)

b=sum(A)

b1=ones(m,1)

b2=b1*b

c=a./b2

方法3:将方法2改成一行命令

c=A./(ones(size(A,1),1)*sum(A))

结果为



给你个参考
>> A=[1 2;3 4]
A =
1 2
3 4
>> B=sum(A)
B =
4 6

>> C=[A(:,1)/B(1),A(:,2)/B(2)]

C =

0.2500 0.3333
0.7500 0.6667

这个方法可行 但是如果矩阵太大的话就有点繁琐了 能不能用for 循环做 我对matlab的语法不是太了解
呵呵 我也只知道点皮毛 刚学不久 还没学编程
等高手来教我们吧 ^_^
若有一个命令或函数就解决 那就好了


MATLAB中如何求矩阵中所有元素与该元素所在的列的所有元素之和的比值,组成一个新的矩阵视频

相关评论:
  • 15784437092如何获取matlab的矩阵中的数据?
    郁婕很第一步、打开matlab,在命令行窗口中输入a=[1 2 3 4;4 5 6 7;1 2 3 4],按回车键创建一个3行4列的矩阵,如下图所示:第二步、如果我们想获取矩阵第2行第3列的数据,输入a(2,3),如下图所示:第三步、想获取矩阵第3列的第一个和第三个,输入a([1 3],3),如下图所示:第四步...

  • 15784437092如何在matlab中提取矩阵中的元素
    郁婕很1、第一步打开matlab命令行窗口,输入a=[123;456;789;647],创建一个a矩阵。2、第二步输入a(1:2,1:3),进行提取a矩阵的第1,2行第1到3列。3、第三步按回车键之后,可以看到已经提取了a矩阵的第1,2行第1到3列。4、第四步输入a(2:3,1:2),进行提取a矩阵第2到3行第1到2...

  • 15784437092matlab中如何取一个矩阵的一部分?
    郁婕很matlab中取一个矩阵的一部分方法如下:格式A(m,n),用于提取矩阵A中符合m,n要求的部分 1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。2、提取某行某列 A(:,n)提取第n列的所有元素,如A(:,3)提取第三列的所有元素;A(m,:)提取第m行的所有元素,如A(3...

  • 15784437092如何用matlab计算一个矩阵中的点的个数?
    郁婕很1.确认矩阵是否可以相乘。只有第一个矩阵的列的个数等于第二个矩阵的行的个数,这样的两个矩阵才能相乘。图示的两个矩阵可以相乘,因为第一个矩阵,矩阵A有3列,而第二个矩阵,矩阵B有3行。2.计算结果矩阵的行列数。画一个空白的矩阵,来代表矩阵乘法的结果。矩阵A和矩阵B相乘得到的矩阵,与矩阵A...

  • 15784437092MATLAB求某个矩阵中最大值并标出所在行列
    郁婕很假设矩阵为A,求最大值:a=max(max(A));这时候a就是矩阵A中的最大值元素,求a所在的行列:[hang,lie]=find(A==a);楼主,不要忘了选我为最佳答案哈。

  • 15784437092MATLAB中怎么提取一个矩阵中的某行?
    郁婕很1、首先,打开MATLAB命令行窗口,输入a = [1 2 3; 4 5 6; 7 8 9; 6 4 7]创建一个a矩阵,如下图所示,然后进入下一步。2、其次,完成上述步骤后,输入a(1:2,1:3)以提取矩阵的第1,2行第1到3列,如下图所示,然后进入下一步。3、接着,完成上述步骤后,按Enter键,可以看到...

  • 15784437092matlab 如何取出矩阵A中的一个值,如第二行第三列这个值要怎么取,万分感...
    郁婕很A(矩阵行数*(想取的列数-1)+想取的行数)例如,A矩阵为4*5矩阵,你想取到第二行第三列,就是A(4*(3-1)+2),希望能够帮到你!

  • 15784437092有一个4*5矩阵,用MATLAB编程求出其最大值及其所在的位置
    郁婕很MATLAB求最大值直接调用求最值的函数 max 函数就好了。例如矩阵为 A ,那么求最值即为 max_A = max( max(A) ) , [m,n] = find( max_A == A )程序中出错的原因可能是因为第一行结束的分号是中文分号,换成非英文分号就好。MATLAB 中的 max 函数是求最大值的函数。1、如果 A 是向量...

  • 15784437092matlab中有没有求矩阵中元素在某一区间上元素个数之类的函数_百度知 ...
    郁婕很find函数 例如a=[1 2 4 5 6 4 3 6 4]length(find(a>3&a<6))返回值为4

  • 15784437092Matlab怎样求矩阵A的大小和维数
    郁婕很1、软件启动后,需要编辑及运行程序,在专用编程工具中,容易编写,通过新建文件,即可打开编辑器,用其进行代码设计。2、首先,使用length方便计算出未知矩阵中,行或列最大值,如果需要这种结果,就可以选用,如行数比列的大,就返回行的数目,反之返回列。3、接着介绍size,实际这一函数用法更灵活,...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网