利用matlab对二维矩阵进行计算分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用matlab对二维矩阵进行计算分析相关的知识,希望对你有一定的参考价值。
现在有一个二维矩阵,每列有特定含义(属性),第几行表示第几种特定结点,矩阵中每个元素表示此节点在这列下的值,如
属性1 属性2 属性3 ..........属性n
node1 26 27 45 50
node2 35 67 80 21
node3 34 49 62 11
..........
noden 76 18 34 22
现在如何利用matlab,来对此矩阵进行计算分析,找出其中最好的结点(如这个结点所有属性之和最小)
要求:采用高效的算法,时间复杂度与空间复杂度都尽可能小
s=sum(data,2);
[minv n]=min(s);
返回minv是属性之和的最小值,n是对应的最小的行坐标
就是说第n个节点的属性和最小,最小值是minv
如果有超过一个节点的属性和相同,其都是最小
这个时候以上方法只能返回第一个找到的节点
如果有多个节点的属性和相等且都为最小,又想返回全部满足这个最小的节点
需要用一下代码
s=sum(data,2);
minv=min(s);
n=find(s=-minv);
返回的n就是所要求的属性和最小的节点编号,可能不止一个,最小属性值为minv
当然再确定只有一个或者只需要一个符合条件的节点时
用第一种办法会快点,怎么说也少运行一句程序追问
首先谢谢您啊!这个问题并非这么简单,我理解错了,不是找所有属性之和最小的结点,而现在是根据随便一张二维表,没有任何特征值,然后要得到降维后的数据,降维后的数据一般是只有一列或两三列的,关键是要用到降维算法,这个怎么做呢?
追答这就很笼统了,怎么降维?,用什么标准?
就像原来你理解的,用属性和来衡量好坏,求和本身就是降维的一种办法
要解决不同的问题降维的方法是不同的
没有一个标准,怎样做呢?
目前正在学习matlab编程方面的知识,偶尔遇到一些困难,希望能加您为好友,提高效率。可以吗?看私信
如何用MATLAB生成分类用的二维模拟数据
matlabreshape使用reshape把指定的矩阵改变形状,但是元素个数不变,例如,行向量:a=[123456]执行下面语句把它变成3行2列 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 参考技术A 可以使用rand函数来生成:rand(n)生成二维n*n大小矩阵
rand(n,m)生成二维n*m大小矩阵
以上是关于利用matlab对二维矩阵进行计算分析的主要内容,如果未能解决你的问题,请参考以下文章