为什么MATLAB用矩阵做运算单位?普通数字不行么?用矩阵有什么好处?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 22:18:28
为什么MATLAB用矩阵做运算单位?普通数字不行么?用矩阵有什么好处?

为什么MATLAB用矩阵做运算单位?普通数字不行么?用矩阵有什么好处?
为什么MATLAB用矩阵做运算单位?普通数字不行么?用矩阵有什么好处?

为什么MATLAB用矩阵做运算单位?普通数字不行么?用矩阵有什么好处?
"matlab用矩阵做运算单位"这种说法其实是为了方便初学者理解的,严格来说是不对的.我理解的你说的"运算单位"其实也就是matlab里的最基本的变量.
我不知道楼主有没有C语言的基础,如果有的话就可以理解了.
在C语言或者类似的高级编程语言中,变量要使用必须首先定义变量类型.你想使用变量a,那必须首先指定a是什么类型的,是整数?还是浮点数?或者布尔类型的数?还是矩阵?是向量?或者是一种特殊的数据类型(类)?
当你指定了数据类型后,a就只能被当作这种特定类型的变量使用.
而matlab作为一种“高高级语言”,面向数学计算,其本身已经弱化了变量类型的概念.如果楼主搞过matlab和C++的混合编程的话就会知道,matlab的的变量统称为matlabarray类型,也就是matlab数组类型.
没搞过的话也没关系,我们从具体应用来看.你在matlab里写了一行a=1.此时你是把a当作一个整数变量来用的.但是回头你可以再写a=a+0.1.此时a=1.1,又成了一个浮点数.然后你还可以写a=[a,2].此时a=[1.1 2]这样一个行向量.然后你还可以写a=[a;a],此时a=[1.1,2;1.1,2]这样一个矩阵.
此时我们就看出,matlab和C语言的不同.matlab里的变量,不需要指定数据类型.你想让它是什么就可以是什么.可以是整数、浮点数、向量、矩阵……全都可以.而matlab里使用变量,也根本不需要定义其类型.
其实matlab的基本变量就是这样一种什么都可以是的类型.
matlab是一种“高高级语言”,如果从高级语言的角度来看,matlab的基本数据类型一定是一个“类”.如果不理解什么是类的话,去看点面向对象程序设计的书,比如C++就会懂了.
matlab这样处理的好处也恰恰是“高高级语言”的好处,就是用户不需要再像使用高级语言一样,严格去定义变量类型.而可以把更多的注意力放在科学计算本身上.
当然这样做的好处的方便,代价就是牺牲一部分计算效率.比如同样的运算,用C语言来做和用matlab来做相比,C要比matlab快好几倍呢.