数字图像处理——MATLAB基础(持续更新)

matlab概述

命令窗口------基本的命令操作

1、声明matlab是对大小写敏感的。

2、clc命令表示清除命令行窗口显示的内容,而不清除工作区的值。而clear是用来清除工作空间的变量,clear直接使用清除工作空间所有变量,clear+变量名 清除指定变量。举个例子(注意观察工作区与命令行窗口的变化):
清除之前
使用clc清除之后
使用clear清除之后

3、使用⬆调回已输入的命令 。

4、who与whos命令是用来显示工作空间的变量,who用来显示工作空间的变量名,whos用来显示工作空间变量的详细信息,如下图所示:

常见通用命令总结(也不是所有都要记,记住常用的就可以了):

其中help通常使用matlab左上角的(虽然是全英的,但是还是官方文档更可靠,也更方便,不要总是百度一下,要上研究生的就更要适应读全英文档,因为第一手科技论文,基本是英文。别问我怎么知道的,我们老师讲的),如下图:

注意:当前目录窗口:指的是matlab运行时的工作目录,并且只有在当前目录下和搜索庐江下的文件、函数才可以被运行和调用,如下图:
当前目录

搜索路径: 指Matlab执行过程中对变量、函数和文件进行搜索的路径。

在File菜单中选择Set Path命令或在命令窗口输入pathtool命令,出现搜索路径设置对话框:

功能演示

1、求解如下方程的根(只有红色框里的两条命令):

2、求解如下线性方程组 (只有红色框里的三条命令):

注:inv()函数是矩阵的逆矩阵。

第二种方法,符号计算:

3、求解如下定积分:

4、多项式曲线拟合:

考虑如下x-y一组实验数据:x = [1,2,3,4,5,6,7,8,9,10] y = [1.2,3,4,4,5,4.7,5,5.2,6,7.2]

数值表示、变量及表达式

matlab预定义的变量:

运算符和表达式:

注:对于矩阵而言,左除和右除不同。 乘(*)和点乘(.*)不同,前者对于矩阵就是按照矩阵乘法运算来说,后者就是对应元素相同。因此也有条件的限制,前者的矩阵1的列数和矩阵2的行数相同才可以;后者就是维度完全一致。

优先级:幂最高,然后乘除,再然后加减,如果实在记不住,使用括号。

复数及其运算:

matlab数据及其运算------其中的数据为矩阵

matlab矩阵的表示

我们熟悉的坐标系的原点位于坐标轴的左下角,以(0,0)开始,但是在matlab中坐标轴的原点位于左上角,以(1,1)开始。

数组的概念:

一维:向量vector

二维:矩阵matrix

三维:张量tensor

一维数组的创建

1、使用方括号'[ ]'操作符,向量元素之间使用英文逗号隔开或者使用空格隔开。

2、使用冒号操作符,语法:x = start:increment:end。其中increment即可为正也可为负,当其为负时,start必须大于end,反之同理。

3、利用函数linspace函数,语法:x=linspace(start,end,n)其中start为第一个元素,end为最后一个元素,该函数会生成一个数量为n的数组,其中每个数组之间的间隔是相同的,即生成一个等差数列。

4、使用函数logspace函数, 语法logspace(a,b,n),表示生成长度为n的向量,范围时10^a到10^b。

5、列向量的创建,使用方括号时,使用分号分割行。或者使用 ' 将矩阵进行转置。

二维数组的创建

1、由向量构成数组

2、函数方法:

(1) ones函数生成全为1的矩阵,zeros函数生成全为0的矩阵。

(2)reshape函数,注意元素的排列顺序,从上到下按列排列,并且要求元素总数不变。

字符串

如果需要查找有关字符串的内容,可以在命令窗口输入命令help strfun或者help strings。

在matlab中使用单引号来界定一个字符串,可以使用方括号 [ ] 直接连接多个字符串变量,得到一个新字符串变量。并且注意在matlab中,一个字符串被视为一个行向量,字符串中的每个字符包含空格,都以ASCII码的形式存放在行向量中。

可以使用length的命令计算字符串的长度:

数组元素的标识与寻访

1、全下标寻址

2、单下标寻址(方便)

可以自己敲代码试试,第三个元素是多少,看看自己的猜测是否正确?

注意括号的使用

可以敲代码试试不同单下标寻址的方法

并且只要下标值不超过维度,数组元素可以被任意重复访问

根据单下标寻址方法修改对应元素的值

相关推荐
froginwe111 分钟前
SciPy 图结构
开发语言
CC-NX9 分钟前
32位汇编:实验9分支程序结构使用
汇编·算法·win32·分支结构
Larry_Yanan12 分钟前
QML学习笔记(五十二)QML与C++交互:数据转换——时间和日期
开发语言·c++·笔记·qt·学习·ui·交互
万岳科技系统开发16 分钟前
外卖小程序中的高并发处理:如何应对大流量订单的挑战
算法·小程序·开源
TL滕19 分钟前
从0开始学算法——第二天(时间、空间复杂度)
数据结构·笔记·学习·算法
歪歪10023 分钟前
详细介绍一下“集中同步+分布式入库”方案的具体实现步骤
开发语言·前端·分布式·后端·信息可视化
yaoxin5211231 小时前
229. Java 集合 - 操作集合中的多个元素(批量操作)
java·开发语言·python
在人间负债^1 小时前
从Python到仓颉:核心项目内容迁移实践
开发语言·python·鸿蒙·仓颉
HSJ01701 小时前
Aviator中使用BigDecimal进行高精度计算
java·开发语言·bigdecimal·aviator
weixin_307779131 小时前
利用 AWS Lambda 与 EventBridge 优化低频 Java 作业的云计算成本
java·开发语言·云原生·云计算·aws