本文主要讲了学习 ‘MATLAB教程_台大郭彦甫’ P2_02基本操作与矩阵输入 中的一些心得。
视频地址: https://www.bilibili.com/video/av68228488?p=2

变数

使用“=”可以宣告一个变数。并且在WorkSpace里右以看到这个宣告的变数。
正确 : A=10 ;把10这个数指定给A这个变数
错误: 10 = A ;一个变数必须在左边;
在MATLAB中,大小写的变量是不一样的。例如:

A=10
a=10

则在工作区可以看到两个变量,如下:

在变数中,开头不可以有数字,如下:

变数的类型


在numeric中我们可以看到有single, double, 还有有符号的还有无符号。

例如我们刚才输入的 A= 10, 在工作区双击这个变量,可以看到它的类型。
也可以在命令行窗口输入whos, 查看所有的变数的类型,如下:

有一些特别的变数,是在MATLAB中固定使用的,最好不要用这些关键字:


i,j代表的是复数;Inf:无穷大; eps:很小的数; NaN:不存在的数;

输入 iskeyword 可以查看哪些是关键字:

变数调用的优先级

MATLAB内部调用的时候会根据优先极的顺序开始调用:

优先级最高的是用户自己对变数的定义,再是MATLAB内部的自建函数,例如一些三角函数等;再是子函数,然后私有函数。看如下例子:

cos='This string.';
cos(8)

本来,cos是一个内建的三角函数,但是在这里,把cos 赋值为一串字符串,所以cos(8)相当于这个字符串的第8个字符,为 r,如下:

此时,在工作区可以看到,cos表示的值为 ‘This string.’。已经不是一个三角函数了。

变量的删除

可以使用函数 clear

clear  ;删除所有工作区的变数
clear cos; 删除名叫 ‘cos’ 的变数

格式

在MATLAB里面有些固定的格式,根据使用的方便性,可以选择不同的格式。


默认使用的都是 short 格式。 如果要使用长的格式,可以使用 format long, 如下:

format long

shortE和longE分别是显示短的科学计数和显示长的科学计数。 **rat 是分数显示。**有些情况下需要显示分数形式。

这里 hex 为什么显示很奇怪。参考博文:https://blog.csdn.net/weixin_44857688/article/details/112676959

首先了解什么是二进制双精度数字
百度百科对于“二进制双精度数字”的解释:
双精度浮点数(double)是计算机使用的一种数据类型,使用 64 位(8字节) 来存储一个浮点数。C、C++中使用到的双精度浮点数(double)类型是在IEEE二进制浮点数算术标准中定义的。

3、IEEE二进制浮点数算术标准
IEEE二进制浮点数算术标准是一种科学计数法,用符号、指数和尾数来表示。下面是具体的规格:

double类型共计64位,折合8字节。由最高到最低位分别是第63、62、61、……、0位。
最高位63位是符号位,1表示该数为负,0表示该数为正。
62-52位,一共11位是指数位,可以表示范围是-1024 ~ 1023。因为指数可以为负,为了便于计算,规定都先加上 1023(210−1)1023(2^{10}-1)1023(210−1)
51-0位,一共52位是尾数位。由于浮点数精度问题,整数部分与小数部分一共算够53位即可,最高位的1不写入内存(最终保留下来的还是52位)。
下面通过一个例子来说明。
π−>400921fb54442d18\pi ->400921fb54442d18π−>400921fb54442d18
3.141592653589793(D) -> 1 1.001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000(B)
假设3.1415926535898(D)的双精度IEEE二进制表示为:xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx(B)
因为3.1415926535898(D)为正数,第一位符号位为0:0xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx(B)
1 1.001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000(B)的科学计数法表示为1. 1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000*2^1(B),指数1,尾数1. 1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000。按照规定,指数为1+1023=1024(D)->100 0000 0000(B),尾数最高位1省去,所以只剩下1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000:0100 0000 0000 1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000 (B)
0100 0000 0000 1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000 (B) -> 4009 21FB 5444 2D18(H)
————————————————
版权声明:本文为CSDN博主「三木青年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44857688/article/details/112676959

第48页练习题,如下:

分号的使用

在命令行后面,有分号(;)的话,不会显示结果,无分号的话,会显示结果。如下:


但其实MATLAB已经保存了 a=10 这个变数,我们在工作区可以看到,如下:

clc \clear\who\whos

clc :清屏;
clear :移除工作区所有的变数;
who :显示在工作区的变数;
whos :显示在工作区变数的类型;

矩阵

矩阵和向量都是使用 中括号[ ])来显示。

A=[1 2 3 4]   ;
B=[1;2;3;4]   ;列向量是使用分号(;)来划分一的。

矩阵元素指引

假设,矩阵如下图:

第一种方法,没有使用逗号(,):

A(8)    ;表示这个矩阵的第8个元素,在MATLAB里元素是按着一列一列去数,先数第一列,再数第二列,所以A(8)=9
A([1 3 5])  ;方括号里是一组数,表示第1个元素、第3个元素、第5个元素,并且新的元素组成了一个行向量, [1 31 17]
A([1 3; 2 6]) ; 方括号里寻找的元素组成了一个新的矩阵, [ 1 31; 5 2]

如下所示:

第二种方法,里面有使用到逗号(,),如下:

A(3,2)  ;表示寻找的是A矩阵的第3行,第2列的元素,则为 2
A([1 3],[1 3]) ;逗号前表示的是行,所以是第1行和第3行,逗号后面表示的是列,所以是第1列和第3列,那么两者相关的地方会         ;组成一个新的矩阵,[1 6;31 7]

第71分钟作业



对于最后一问,也可以使用冒号的一个用法。 A(3,:)=[ ]

冒号操作符

<1> 冒号可以做等差算术;

j:k    ;作一个从j到k的数列,默认每次加1
j:i:k  ;作一个从j到k的数列,默认每次加i,如果快到k时,不够加i,则最后的几个数会忽略掉

<2> 冒号可以选择某一行或列的全部数据,例如:

矩阵组合

假设有矩阵A,矩阵B。可以将A和B组合在一起,变成一个新的矩阵。 例如: F=[A B] ; F=[A;B] ;


注意:在使用的过程中,一定要注意你要组合的两个矩阵是否有相同的列或者行。

矩阵的算法

y3=A.*B     ;点乘,就是A矩阵里的第一行的第一个元素乘以B矩阵里的第一行的第一个元素,然后A矩阵的第一行的第二个元素乘;以矩阵B的第一行的第二个元素,一直如此下去
y5=A./B     ;点除,类似于点乘
C=A'        ;将矩阵A转置

具体如下:

特殊矩阵

linspace(x1,x2)     ;生成x1到x2之间的100个等间距点的行向量
linspace(x1,x2,n)   ;生成x1到x2之间的n个等间距点的行向量
eye(n)              ;生成n行n列的对角线上全是1的矩阵
zeros(n1,n2)        ;生成n1行n2列的全是0的矩阵
ones(n1,n2)         ;生成n1行n2列的全是1的矩阵
diag([n1 n2])       ;生成对角线上是方括号内部数据的矩阵。
rand(n1,n2)         ;生成n1行n2列随机数矩阵,生成的数为0-1之间

与矩阵相关的函数

max(A)         ;找到A矩阵里每一列的最大值,组成一个行向量
max(A')        ;找到A矩阵里每一**行**的最大值,组成一个行向量
max(max(A))    ;找到A矩阵里每一列的最大值,组成一个行向量,在这一个行向量里,找到最大的值
min(A)         ;找到A矩阵里每一列的最小值,组成一个行向量
sum(A)         ;算出A矩阵里每一列的和,组成一个行向量
mean(A)        ;算出A矩阵里每一列的平均值,组成一个行向量sort(A)        ;将每一列从小排到大
sortrows(A)    ;每一行作为一整体,根据第一列从小到大,其它列整体移动
size(A)        ;矩阵A有多少行和多少列
length(A)      ;在矩阵A中,如果行比列多,则返回行数,如果列比行多,则返回列数。也就是返回行和列中多的一个
find(A)        ;寻找矩阵A中非零元素的位置是多少
find(A==5)     ;返回矩阵A中等于5的位置,注意,是位置,而不是数。

MATLAB教学_02基本操作与矩阵入相关推荐

  1. MATLAB的学习——基本操作和矩阵操作

    基本操作 命令窗口操作: clc :删除以上的操作及输出: clear x y z 删除上面的 x y z 三个变量的值 输出格式的限定 >> format long >> x ...

  2. matlab矩阵初等变换矩阵,实验一 MATLAB基本操作及矩阵初等运算

    实验一 MATLAB 基本操作及矩阵初等运算 实验目的: 1.熟悉matlab 的界面: 2.熟练掌握matlab 的变量.矩阵定义和基本赋值符号: 3.熟练掌握matlab 矩阵的引用及矩阵初等运算 ...

  3. [MATLAB]基本操作与矩阵输入

    基本操作与矩阵输入 基本操作 基本的四则运算 嵌入函数 复数运算 变量 变量基本规则 查询变量 将内置函数更改意义 Format 符号 矩阵及向量 矩阵的输入 索引 矩阵元素的替换 :操作符 增广矩阵 ...

  4. MATLAB(一)基本操作与矩阵输入

    文章目录 前言 一.Matlab视窗 二.基本操作与矩阵输入 1. 把MATLAB当做计算机 2. 初等数学函数 Exercise练习 2. 嵌入函数 3. 特殊变量和常量 4.MATLAB调用优先 ...

  5. matlab 图像上下翻,Matlab图像九宫格基本操作(翻转,镜像等)+位图操作

    Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 这次blog提到的操作对于matlab来说都很基础,而且对于有编程和计算机基础的人来 ...

  6. matlab mex 矩阵,如何从mex函数访问matlab结构字段中的矩阵?

    如何从mex函数访问matlab结构字段中的矩阵? 我试图弄清楚如何从mex函数访问存储在matlab结构中的字段中的矩阵. 那真是漫长的缠绕...让我解释一下: 我有一个定义如下的matlab结构: ...

  7. MATLAB教学_06进阶绘图

    本文学习视频:https://www.bilibili.com/video/av68228488?p=6 本文学习内容: 进阶2D绘图 绘图空间 3D绘图 semilogx(x,y); %x轴取对数 ...

  8. matlab 全1矩阵,matlab全为1的矩阵

    生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) 生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) 生成一个主对角线全为 1 的 m 行 n 列 ...

  9. MATLAB主窗口中 主菜单栏有,Matlab介绍与基本操作.ppt

    Matlab介绍与基本操作 MATLAB介绍与基本操作 数学软件与Matlab的关系 国际上最常用的三种数学类科技应用软件为:3M Matlab Mathematica Maple P.S:还有Mat ...

最新文章

  1. Android异步处理三:Handler+Looper+MessageQueue深入详解
  2. MapInfo开发心得——控件篇【转】
  3. java 取得日期_java-如何从某个日期获取日期列表?
  4. JavaScript面向对象——深入理解原型继承
  5. Oracle查询所有序列
  6. Java 中的日期与时间
  7. 第一次写CSDN的博客
  8. 移动端测试===adb shell top命令解释
  9. wordpress直接处理$_post_实战:Drupal迁移到WordPress
  10. jira状态评审未通过后 不能修改_去年职称申报未通过,今年再报名的,这些变化需要注意了...
  11. open jdk 证书 问题
  12. 我的世界 Java1.12.2联机下载_我的世界1.12.2
  13. 无法在linux下启用ttysac0串口 终端只打印信息,启动出现mmc0: error -110 whilst initialising SD card该如何解决?...
  14. 模板文件如何调用php函数,模板文件调用方法与路径
  15. 你的独立思考能力正在慢慢退化
  16. linux 查看磁盘寿命,如何确定Linux下SSD的写周期数或预期寿命?
  17. 移动硬盘显示设备未就绪的文件寻回方法
  18. 从mpeg ts文件中提取I帧(3):pes包的解析
  19. Coding.net代码托管空间申请与使用
  20. 如何在Python中进行换行(换行)?

热门文章

  1. AbsoluteLayout布局
  2. TestDirector(TD)—测试管理工具
  3. 计算机专业应届生简历英语作文,计算机专业英文简历模板范文六篇
  4. Android 高仿QQ 好友分组列表
  5. c语言碱基配对的算法,碱基配对方式有几种,碱基对的种类和碱基配对
  6. 【汉化】Acunetix Web Vulnerability Scanner 11.x汉化包
  7. kali-Firefox安装flash插件
  8. Ubuntu16.04安装CH340驱动
  9. Android 保证Service服务不被杀死的几个方法
  10. 什么是BOM?与焊盘不匹配,怎么办?