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操作矩阵的相关方法的更多相关文章

  1. Matlab中矩阵的平方和矩阵中每个元素的平方介绍

    该文章讲述了Matlab中矩阵的平方和矩阵中每个元素的平方介绍.   设t = [2 4 2 4] 则>> t.^2 ans = 4 164 16 而>> t^2 ans = ...

  2. matlab将矩阵数据归一化到[0,255]

    matlab将矩阵数据归一化到[0,255]     function OutImg = Normalize(InImg) ymax=255;ymin=0; xmax = max(max(InImg) ...

  3. R: matrix & array 生成、操作矩阵、数组:

    ################################################### 问题:生成.操作矩阵   18.4.27 怎么生成矩阵 matrix.,,及其相关操作 ??? ...

  4. Matlab/Eigen矩阵填充问题

    Matlab进行矩阵填充时可以填充空矩阵,相当于空矩阵不存在,例如一下代码: P_RES = [ P_xv P_xvy P_xv*dy_dxv'; P_yxv P_y P_yxv*dy_dxv'; d ...

  5. matlab中矩阵的表示与简单操作

    原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间 ...

  6. Matlab练习——矩阵和数组的操作

    题目来自:<战胜MATLAB必做练习50道> 题目有更改,改成了我想写的样子. 1. 创建一个3×3矩阵,并将其扩充为4×5矩阵 clear; clc; mat1 = ones(,) ma ...

  7. Matlab——矩阵运算 矩阵基本变换操作

    矩阵运算 + 加 - 减 .* 乘 ./ 左除 .\ 右除 .^ 次方 .' 转置 除了加减符号,其余的运算符必须加“.” >> a = : a = >> a- %减法 ans ...

  8. [matlab]改变矩阵的大小并保存到txt文件

    要完成的任务是,加载一个保存在txt文件中的矩阵, 并把它扩大10倍,并且要再次保存回去 %加载txt文件 >load('Matrix.txt'); %扩大10倍 repmat(Matrix,r ...

  9. MATLAB学习笔记(二)——主要是MATLAB的矩阵知识

    PS:主要是讲解矩阵的相应的实现方法,其实MATLAB的很大一部分的优势,就是集成了矩阵级别的运算,并以此为特点,可以进行多维空间上的验证. 让我们懂得了原来线性代数如此有用= - =. (一)MAT ...

随机推荐

  1. 通过手机浏览器打开APP或者跳转到下载页面.md

    目录 通过手机浏览器打开APP或者跳转到下载页面 添加 schemes 网页设置 参考链接 通过手机浏览器打开APP或者跳转到下载页面 以下仅展示最简单的例子及关键代码 由于硬件条件有限,仅测试了 A ...

  2. 3.php数据类型中NULL,"",0的比较

    <?php //赋值 $some1 = NULL; $some2 = 0; $some3 = ""; //0与NULL比较 echo $some1==$some2; echo ...

  3. windows python easy_install ,pip. selenium

    http://www.cnblogs.com/fnng/p/3157639.html 搭建平台windows 准备工具如下: unknown encoding: cp65001异常 python安装后 ...

  4. 看用Tornado如何自定义实现表单验证

    我们知道,平时在登陆某个网站或软件时,网站对于你输入的内容是有要求的,并且会对你输入的错误内容有提示,对于Django这种大而全的web框架,是提供了form表单验证功能,但是对于Tornado而言, ...

  5. "零代码”开发B/S企业管理软件之一 :怎么创建数据库表

    声明:该软件为本人原创作品,多年来一直在使用该软件做项目,软件本身也一直在改善,在增加新的功能.但一个人总是会有很多考虑不周全的地方,希望能找到做同类软件的同行一起探讨. 本人文笔不行,能把意思表达清 ...

  6. 基本数据类型补充、set集合、深浅拷贝

    一.基本数据类型补充 1,关于int和str在之前的学习中已经介绍了80%以上了,现在再补充一个字符串的基本操作 str.join(可迭代对象): li = ['李嘉诚','何炅','海峰','刘嘉玲 ...

  7. Deep Learning -- 数据增强

    数据增强 在图像的深度学习中,为了丰富图像训练集,更好的提取图像特征,泛化模型(防止模型过拟合),一般都会对数据图像进行数据增强,数据增强,常用的方式,就是旋转图像,剪切图像,改变图像色差,扭曲图像特 ...

  8. 去除MyEclipse 中新建servlet多余的注释问题

    1.找到你的MyEclipse 的安装目录 2.点击文件位置,找到安装目录下的Common 文件夹下的plugins 3.找到com.genuitec.eclipse.wizards.jar  文件, ...

  9. 006-HotSpot JVM收集器

    一.概述 1.1.图解 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器.如果两个收集器之间存在连线,就说明它们可以搭配使用. JVM给出了3类选择:串行收集器.并行收集器.并发收集 ...

  10. mysql乱码修改character_set_server

    [mac] 1.使用任何一个客房端或者命令行查询一下编码,俺用的是MySQLWorkbench SHOW VARIABLES LIKE 'character_set_%'; 2.发现编码是charac ...