Matlab操作矩阵的相关方法
Matlab操作矩阵的相关方法 下面这篇文章主要是对吴恩达老师机器学习中matlab操作的一个整理和归纳
一、基本操作
1.生成矩阵(ones、zeros)
A = [1 2;
3 4;
5 6]#生成3行4列的矩阵
B = [1 2 3]#B就是一个行向量
C = [1;
2;
3]#定义c为一个列向量
D = 1:0.1:2#定义开始值为1,步长为0.1,结束值为2的一个行向量
E = 1:6#定义开始值为1,步长默认为1,结束值为6的行向量
ones(2,3)#矩阵中所有元素都为1 定义一个2行3列的矩阵
zeros(2,3)#矩阵中所有的元素都为0 定义一个2行3列的矩阵
2.生成随机矩阵(rand、randn)
rand(1,3)#生成1行3列的随机矩阵
randn(2,3)#生成高斯随机矩阵,高斯随机矩阵即为标准差或方差为1
3.生成单位矩阵(eye(n))
eye(n)#生成n行n列的单位矩阵
4.帮助命令(help)
help 变量名#可查看函数的API详解
二、移动数据
1.操作.txt文件(load)
1.1 加载.txt文件并且拆分文件的行和列的值
data = https://www.it610.com/article/load('文件路径')#加载文件
获取多列的数据(获取多行的数据和多列类似,只需要修改第一个参数即可)
data(:,1)#拿到所有行第一列的数据
data(:,1:2)#拿到所有行第一列和第二列的数据
data(:,1:3)#拿到所有行第一列、第二列和第三列的数据
data(:,[1,3])#拿到所有行第一列和第三列的数据
将矩阵所有的数据扁平化为一列
data(:)
将矩阵所有的数据扁平化为一行
data(:)'
1.2 将数据保存为.txt文件
v = data(:,1)#拿到第一列的数据
save test.txt v -ascii#将数据保存到test.txt文件中
2.矩阵的操作
2.1 获得矩阵的行数和列数(size())
size(A)#返回一个1行2列的矩阵分别是矩阵的行数和列数
size(A,1)#返回矩阵的行数
size(A,2)#返回矩阵的列数
2.2 拿到矩阵的最大维度(length())
length(A)#获得矩阵的行数和列数中维度较大的一个
2.3 通过矩阵索引获取某一个值
A(m,n)#索引到矩阵m行n列的位置
2.4 修改矩阵的某一行或者某一列
A(:,2) = [10;
11;
12]#修改矩阵第二列的数据
2.5 在矩阵中添加一行新的数据
A = [A,[10;
11;
12]]#向矩阵中添加一行新的数据
C=[A B]
2.6 矩阵的结合
横向结合:
A = [1 2;
3 4;
5 6]
B = [11 12;
13 14;
15 16]
C = [A B]
纵向结合:
C= [A;
B]
三、计算数据
1.A.*B(矩阵之间的乘积)
A .*B# A中对应位置元素和B中对应位置元素的乘积
2.A.^2 (矩阵自身的平方)
A.^2#矩阵A的平方(A矩阵中的每个元素都平方)
3.1./A(矩阵中每个元素的倒数)
1./A 矩阵A中每个元素分别求倒数
4.log(A) (对矩阵中每个元素求对数) ,exp(A)(对A中的每个元素以e的底数)
5.abs(A)(对矩阵中的每个元素求绝对值)
6.-A(对矩阵中的每个元素求相反数)
7.A+1(对矩阵中每个对应的元素+1)
8.A’(A的转置)
9.一些有用的函数
求矩阵中最大的一个值:
max(max(A))
或者
max(A(:))首先扁平化A成为一个列向量,然后求最大值
max是默认求每列的最大值:
max(A)#求矩阵A的最大值(如果A是矩阵,会拿到每一列的最大值)
max(A,[],1)#拿到矩阵A中每一列的最大值
max(A,[],2)#拿到矩阵A中每一行的最大值
[val, ind] = max(a)#返回矩阵A中的最大值和索引
A<3 (对应元素的比较 如果小于3返回1,如果大于3返回0)
find(A<3)#找到A中所有小于3的元素,并且返回他们的索引
A=magic(3)#任意行、列、对角的元素相加的和等于相同的值
[r,c] = find(A>=7)#拿到所有大于等于7的元素的所在行和列
sum(A)#获得矩阵中所有元素的和
sum(A,1)#获得矩阵中每一列相加的和
sum(A,2)#获得矩阵中每一行相加的和
sum(sum(A))#获得所有元素的值
prod(A)#获得矩阵中所有元素的乘积
floor(A)#对矩阵中所有元素向下取整
ceil(A)#对矩阵中所有元素向上取整
10.逆矩阵
pinv(A)#求A得逆矩阵
pinv(A)*A#就会拿到单位矩阵
四、数据绘制
1.绘制正弦函数
t = [0:0.01:0.98];
y1 = sin(2*pi*4*t);
plot(t,y1);
2.绘制余弦函数
t = [0:0.01:0.98];
y2 = cos(2*pi*4*t);
plot(t,y2);
3.同时绘制正弦函数和余弦函数
t = [0:0.01:0.98];
y1 = sin(2*pi*4*t);
y2 = cos(2*pi*4*t);
plot(t,y1);
hold on;
#hold on 的作用是在旧的图像上绘制新的图像
plot(t,y2,'r')
xlabel('times');
#添加横轴的label
ylabel('values');
#添加纵轴的label
legend('sin','cos')#将图例添加到右上角
title('my plot')#给图像一个title
close;
#关闭图像
figure(1);
plot(t,y1);
figure(2);
plot(t,y2);
#给不同的图像命名
4.将图像分为一个1*2的格子
subplot(1,2,1)#前两个参数的意思是分为1*2的格子,后面一个参数的意思是当前使用第一个格子
5.改变轴的刻度
axis([0.5 1 -1 1])#(xmin xmax ymin ymax)
6.清除一副图像(clf)
7.可视化一个矩阵
A = magic(5)
imagesc(A);
imagesc(A), colorbar, colormap gray;
#一个灰度分布图
【Matlab操作矩阵的相关方法】转载于:https://www.cnblogs.com/leijing0607/p/9683486.html
推荐阅读
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- 在线版的迅捷思维导图怎么操作()
- 操作系统|[译]从内部了解现代浏览器(1)
- 数据库总结语句
- JS常见数组操作补充
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 炒股知识(超级短线操作的秘籍|炒股知识:超级短线操作的秘籍 玩转股市)
- #矩阵中的鞍点
- 1.2序列通用操作