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 = 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操作矩阵的相关方法的更多相关文章
- Matlab中矩阵的平方和矩阵中每个元素的平方介绍
该文章讲述了Matlab中矩阵的平方和矩阵中每个元素的平方介绍. 设t = [2 4 2 4] 则>> t.^2 ans = 4 164 16 而>> t^2 ans = ...
- matlab将矩阵数据归一化到[0,255]
matlab将矩阵数据归一化到[0,255] function OutImg = Normalize(InImg) ymax=255;ymin=0; xmax = max(max(InImg) ...
- R: matrix & array 生成、操作矩阵、数组:
################################################### 问题:生成.操作矩阵 18.4.27 怎么生成矩阵 matrix.,,及其相关操作 ??? ...
- Matlab/Eigen矩阵填充问题
Matlab进行矩阵填充时可以填充空矩阵,相当于空矩阵不存在,例如一下代码: P_RES = [ P_xv P_xvy P_xv*dy_dxv'; P_yxv P_y P_yxv*dy_dxv'; d ...
- matlab中矩阵的表示与简单操作
原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间 ...
- Matlab练习——矩阵和数组的操作
题目来自:<战胜MATLAB必做练习50道> 题目有更改,改成了我想写的样子. 1. 创建一个3×3矩阵,并将其扩充为4×5矩阵 clear; clc; mat1 = ones(,) ma ...
- Matlab——矩阵运算 矩阵基本变换操作
矩阵运算 + 加 - 减 .* 乘 ./ 左除 .\ 右除 .^ 次方 .' 转置 除了加减符号,其余的运算符必须加“.” >> a = : a = >> a- %减法 ans ...
- [matlab]改变矩阵的大小并保存到txt文件
要完成的任务是,加载一个保存在txt文件中的矩阵, 并把它扩大10倍,并且要再次保存回去 %加载txt文件 >load('Matrix.txt'); %扩大10倍 repmat(Matrix,r ...
- MATLAB学习笔记(二)——主要是MATLAB的矩阵知识
PS:主要是讲解矩阵的相应的实现方法,其实MATLAB的很大一部分的优势,就是集成了矩阵级别的运算,并以此为特点,可以进行多维空间上的验证. 让我们懂得了原来线性代数如此有用= - =. (一)MAT ...
随机推荐
- 解决"django-registration(1048,“column”last_login“不能为null”)
去数据库(MySQL终端): 1.查看django_migrations表的信息.如果你看到一些记录,删除它们(如果migrations目录下有原来的配置,需要清除). mysql> SELEC ...
- 《挑战程序设计竞赛》2.6 数学问题-快速幂运算 POJ1995
POJ3641 此题应归类为素数. POJ1995 http://poj.org/problem?id=1995 题意 求(A1^B1+A2^B2+ - +AH^BH)mod M. 思路 标准快速幂运 ...
- 小程序wxParse插件的使用
微信小程序输出html内容数据插件wxParse,可以把带html标签的数据输出为微信小程序正常显示的格式,wxParse插件带有演示,也有使用文档说明. 下载地址:https://github.co ...
- Java 之 Servlet
JavaWeb 三大组件: Servlet, Filter, Listener. Servlet 的作用是处理请求,服务器会把接收到的请求交给 Servlet 来处理.在 Servlet 中通常需要: ...
- 【零基础学习iOS开发】【02-C语言】08-基本运算
一.算术运算符 算术运算符很地简单.就是小学数学里面的一些加减乘除操作.只是呢.还是有一些语法细节须要注意的. 1.加法运算符 + 1 int a = 10; 2 3 int b = a + 5; 在 ...
- Vijos p1303导弹拦截(LIS+贪心)
传送门:https://vijos.org/p/1303 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题開始训练. 描写叙述 某国为了防御敌国的导弹突击,研发出一种导弹拦截系统. 可是这 ...
- Leetcode 之 Exclusive Time of Functions
636. Exclusive Time of Functions 1.Problem Given the running logs of n functions that are executed i ...
- 系列文章(三):WAPI为无线局域网WLAN安全而生——By Me
导读:无线局域网(又称为WLAN,Wireless Local Area Network),其应用领域不断拓展,无线接入所具有的前所未有的连接性和自动化能够为人们带来巨大的便利和商机.与此同时,在信息 ...
- sql server always on 2014安装配置
SQL 2014 AlwaysOn 搭建 原文:SQL 2014 AlwaysOn 搭建 AlwaysOn底层依然采用Windows 故障转移群集的机制进行监测和转移,因此也需要先建立Window ...
- 请教Hibernate和JPA什么区别?
JPA是Java的持久化规范.Hibernate早期是一个ORM框架,后期是JPA的一个实现.