MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。因此,今天就来介绍一下MATLAB有关于矩阵的一些基本运算:
随机建立一个 6*6 6 的整数矩阵 A A ,执行下面的操作:
(1)将 A 的第一行元素乘以 2,第二行元素乘以 3,…,第 6 行元素乘以 7,形成矩阵 B
(2)将 A 转换成 4*9 和 12*3 的矩阵
(3)分别提取 A 的上三角,下三角和对角矩阵
(4)取矩阵 A 的第 2-5 行和 3-6 列的元素组成新的矩阵
(5)计算矩阵的每行元素和每列元素的和,求矩阵的 1-范数,2-范数和无穷范数
(6)找出矩阵 A 中大于 10 的元素的位置,以下标的形式给出。
(7)通过查阅帮助文件,计算矩阵 A 的特征值和特征向量,并将矩阵 A 对角化。
(8)将矩阵 A 分别写入到 mat,dat,txt,xlsx 格式的文件中
首先是创建矩阵。创建矩阵的函数有很多
第一种,元素直输法创建矩阵
在MATLAB中,创建一个矩阵最简单的方法是使用矩阵构造符号[ ],在[ ]中,使用逗号“,”或空格“ ”分隔矩阵的列,使用分号“;”分隔矩阵的行。
x=[1,2,3,4;1,2,3,4]
运行结果:
x =
1 2 3 4
1 2 3 4
第二种,利用函数进行创建矩阵
函数 | 作用 |
---|---|
randint(x,y,max) | 创作一个不大于max的随机正整数的x*y的矩阵 |
randi(max,x,y) | 创作一个不大于max的随机正整数的x*y的矩阵 |
eye() | 创造单位矩阵 |
ones() | 生成全为一的矩阵 |
对于接下来的1~8问,给出以下代码来实现其功能。
clc
clear
a=randi(20,6,6)%创建一个6*6且数值均不大于20的随机正整数矩阵
for i=1:6
B(i,:)=a(i,:)*(i+1);
end
B
c4_9=reshape(a,4,9)
c12_3=reshape(a,12,3)
xl=tril(a)%去除矩阵的下三角行列式,空缺的元素用零来代替
xr=triu(a)%去除矩阵的上三角行列式,空缺的元素用零来代替
a25_36=a(2:5,3:6)
sum_hang=sum(a,2)
sum_lie=sum(a,1)
fanshu_1=norm(a,1)%求解矩阵的一范数
fanshu_2=norm(a,2)%求解矩阵的二范数
fanshu_inf=norm(a,inf)%求解矩阵的无穷范数
b=find(a>10);
[hang lie]=ind2sub(size(a),b);%将数字b转换为矩阵a的坐标
disp([hang lie]);
[V D]=eig(a);
V %V的列是相应的特征向量
te=eig(a)%特征值
D %由特征值构成的对角阵
dlmwrite(\'a.mat\',a)
dlmwrite(\'a.dat\',a)
dlmwrite(\'a.txt\',a)
dlmwrite(\'a.xlsx\',a)
请发表评论