Matlab数据类型

本篇介绍我在南农matlab课程上的所学,我对老师ppt上的内容重新进行了整理并且给出代码案例。主要内容在矩阵。如果真的想学matlab,我不认为有任何文档能够超过官方文档,请移步至官网,本篇说实话只是写出来给自己和学弟学妹作期末复习用的,没有任何学习价值。还是那句话,真想学明白,请看官方文档。

Matlab数据类型

  • 数值
  • 结构
  • 元胞
  • format
  • 预定义变量
  • 内存变量的管理
  • 逻辑运算与关系运算
    • 逻辑运算
    • 关系运算
  • 序列
  • 矩阵
    • 创建矩阵
    • 特殊矩阵的创建
    • 利用 M 文件或 TXT 文件建立矩阵
      • 使用 `.m` 文件创建矩阵
      • 使用 `.txt` 文件读取纯数据矩阵
    • 矩阵切片
      • MATLAB 中的矩阵切片(索引)操作
      • 基本语法
    • 矩阵运算
      • 1. 基础算术运算符
      • 2. 点运算符(逐元素操作)
      • 3. 常用数学函数
      • 4. 矩阵变换函数
      • 5. 矩阵运算函数
      • 6.向量内积/外积
      • 7.其他函数
  • 字符串
    • 创建字符串以及字符串数组
    • 字符函数

matlab默认显示运算结果,但在赋值语句后加分号只执行赋值操作

数值

双精度与单精度:double, single
符号整型与无符号整型:int8, unit8
实型与复型:real, imag

结构

structure

元胞

cell

% 注释

format

format 只影响输出格式不影响数据存储

代码含义
format 显示小数点后4位
format long小数点后15位
format short e5位有效数字科学计数法
format long e16位有效数字科学计数法
format rat近似有理数

% 小数点后4位
>> format
>> pians =3.1416% 小数点后15位
>> format long
>> pians =3.141592653589793% 5位有效数字的科学计数法
>> format short e
>> pians =3.1416e+00% 16位有效数字的科学计数法
>> format long e
>> pians =3.141592653589793e+00% 近似有理数
>> format rat
>> pians =355/113   

预定义变量

变量名表示数值
ans 缺省变量名
pi 圆周率
eps浮点运算的相对精度
inf 正无穷
NaN不定值0/0
realmax/realmin最大/最小的浮点数
i,j虚数单位
nargin,nargout所用函数的输入/输出变量数目
>> 1ans =1>> pians =3.1416>> epsans =2.2204e-16>> infans =Inf>> NaNans =NaN>> realmaxans =1.7977e+308>> realminans =2.2251e-308>> ians =0.0000 + 1.0000i>> jans =0.0000 + 1.0000i

内存变量的管理

whos, who显示workspace中的变量名,clear删除workspace中的所有变量

>> a=1,b=2a =1b =2>> who您的变量为:a  b  >> whosName      Size            Bytes  Class     Attributesa         1x1                 8  double              b         1x1                 8  double>> clear
>> whos
>>           

逻辑运算与关系运算

逻辑运算

运算符含义
&
``
~

关系运算

运算符含义
>大于
<小于
>=大于等于
<=小于等于
==等于
~=不等于

序列

% 从1开始到4结束每隔0.5取一个
>> 1:0.5:4ans =1.0000    1.5000    2.0000    2.5000    3.0000    3.5000    4.0000% 从1开始到2结束一共有10个等差的数
>> linspace(1,2,10)ans =1.0000    1.1111    1.2222    1.3333    1.4444    1.5556    1.6667    1.7778    1.8889    2.0000% 从10^1开始到10^2结束一共有10个等比的数
>> logspace(1,2,10)ans =10.0000   12.9155   16.6810   21.5443   27.8256   35.9381   46.4159   59.9484   77.4264  100.0000

矩阵

matlab中的矩阵是按列存放的,也就是说你如果用序列创建矩阵,是一列一列依次填满的。

创建矩阵

方括号括起来表示矩阵,分号表示换行,同行元素间以空格或逗号隔开,矩阵元素可以是运算表达式

>> mat = [1 2 3 ; 4 5 6]mat =1     2     34     5     6

特殊矩阵的创建

函数作用
zeors(m,n)产生 m × n m\times n m×n零矩阵,方阵情况时可以省略第二个参数
zeros(size(A))产生与矩阵A同样大小的零矩阵
eye(m,n)构建单位矩阵
ones(m,n)构建全1矩阵
randi([a, b], m, n)元素在[a, b]之间的 m × n m\times n m×n随机矩阵
>> zeros(3,4)ans =0     0     0     00     0     0     00     0     0     0>> eye(3,4)ans =1     0     0     00     1     0     00     0     1     0>> ones(3,4)ans =1     1     1     11     1     1     11     1     1     1>> randi([10,50], 5 ,5)ans =47    21    49    27    1115    32    49    47    4447    49    29    42    4835    49    42    49    3713    16    15    36    41

利用 M 文件或 TXT 文件建立矩阵

可以通过 .m 脚本文件或 .txt 文本文件创建较大、复杂的矩阵。这样做的好处是便于维护、复用或从外部导入数据。

使用 .m 文件创建矩阵

  1. 打开 MATLAB 自带的 Editor 或使用任意文本编辑器。

  2. 输入如下内容(定义一个矩阵 mymat):

    % 文件名:mymatrix.m
    mymat = [1, 2, 3;4, 5, 6;7, 8, 9
    ];
    
  3. 将文件保存为 mymatrix.m,并确保保存在 MATLAB 当前工作目录中。

    >> mymatmymat =1     2     34     5     67     8     9
    

使用 .txt 文件读取纯数据矩阵

适用于数据文件中只包含纯数字(不含变量名)。

  1. 创建一个名为 mymatrix.txt 的文本文件,内容如下:

    1 2 3
    4 5 6
    7 8 9
    
  2. 在 MATLAB 中读取该文件内容为矩阵:

    mymat = load('mymatrix.txt');
    

    或使用更通用的函数:

    mymat = readmatrix('mymatrix.txt');
    

矩阵切片

MATLAB 中的矩阵切片(索引)操作

矩阵的切片操作使用括号 ( , ) 表示,其中:

  • 前一部分表示 行的索引
  • 后一部分表示 列的索引
  • 可以使用数字、向量、冒号 :、关键字 end 等方式指定位置。

基本语法

A(i, j)           % 取第 i 行第 j 列的元素
A(i, :)           % 取第 i 行的所有列
A(:, j)           % 取第 j 列的所有行
A(m:n, p:q)       % 取第 m 到 n 行、第 p 到 q 列的子矩阵
A([1 3], [2 4])   % 取第 1、3 行 和第 2、4 列交叉形成的子矩阵
A(end, :)         % 取最后一行的所有列
A(:, end-1:end)   % 取最后两列的所有行
>> A = [1 2 3; 4 5 6; 7 8 9]A =1     2     34     5     67     8     9>> A(2, 3)ans =6>> A(1, :)ans =1     2     3>> A(:, 2)ans =258>> A(1:2, 2:3)ans =2     35     6>> A([1 3], [1 3])ans =1     37     9>> >> A(end, :)ans =7     8     9>> A(:, end-1:end)ans =2     35     68     9

矩阵运算

数的运算是矩阵运算的特例,所以一并包含在其中。

1. 基础算术运算符

运算符含义说明
+加法元素逐项相加,要求维度一致
-减法元素逐项相减,要求维度一致
*矩阵乘法矩阵内积规则,A的列= B的行
/右除A/BA * inv(B)
\左除A\Binv(A) * B
^矩阵幂A^nn 次矩阵乘法
>> A = [1 2; 3 4], B = [5 6; 7 8]A =1     23     4B =5     67     8>> A + Bans =6     810    12>> A - Bans =-4    -4-4    -4>> A * Bans =19    2243    50>> A / Bans =3.0000   -2.00002.0000   -1.0000>> A / B * Bans =1     23     4>> A \ Bans =-3    -44     5>> A * (A \ B)ans =5     67     8>> A ^ 2ans =7    1015    22

2. 点运算符(逐元素操作)

运算符含义
.*元素乘法
./元素右除
.\元素左除
.^元素幂
>> A = [1 2; 3 4], B = [5 6; 7 8]A =1     23     4B =5     67     8>> A .* Bans =5    1221    32>> A ./ Bans =0.2000    0.33330.4286    0.5000>> A .\ Bans =5.0000    3.00002.3333    2.0000>> A .^ 2ans =1     49    16

3. 常用数学函数

下述函数若作用于矩阵则是对每一元素进行的。

函数说明
sqrt(x)平方根
pow2(x)2的幂
log(x)自然对数
log2(x)2为底的对数
log10(x)10为底的对数
exp(x)e为底的指数
sign(x)符号函数
mod(x,y)余数,x为负数时是向负数的余数
rem(x,y)余数,x为负数时是向正数的余数
round(x)四舍五入
floor(x)向下取整
ceil(x)向上取整
fix(x)向 0 方向取整
conj(x)复数共轭
real(x)复数实部
imag(x)复数虚部
abs(x)
angle(x)相角
>> sqrt([4 9])ans =2     3>> pow2([1 2 3])ans =2     4     8>> log(exp(1))ans =1>> log2(8)ans =3>> log10(100)ans =2>> exp(1)ans =2.7183>> sign([-3 0 4])ans =-1     0     1>> mod(-7, 3)ans =2>> rem(-7, 3)ans =-1>> round(3.6)ans =4>> round(3.4)ans =3>> floor(3.6)ans =3>> ceil(3.2)ans =4>> fix(-3.7)ans =-3>> fix(3.7)ans =3>> conj(1+2i)ans =1.0000 - 2.0000i>> real(1+2i)ans =1>> imag(1+2i)ans =2>> abs(3+4i)ans =5>> angle(pi/4)ans =0

4. 矩阵变换函数

函数说明
transpose(A)A.'非共轭转置
fliplr(A)左右翻转
flipud(A)上下翻转
flipdim(A,1)将矩阵按第一个维度进行翻转
rot90(A)旋转90度
diag(A)对角矩阵
rref(A)最简行阶梯形矩阵
tril(A)下三角矩阵
triu(A)上三角矩阵
reshape(A,m,n)将矩阵A重新排成 m × n m\times n m×n的矩阵
>> A = [1 2; 3 4]A =1     23     4>> transpose(A)ans =1     32     4>> A.'ans =1     32     4>> fliplr(A)ans =2     14     3>> flipud(A)ans =3     41     2>> flipdim(A, 1)ans =3     41     2>> flipdim(A, 2)ans =2     14     3>> rot90(A)ans =2     41     3>> diag(A)ans =14>> rref(A)ans =1     00     1>> tril(A)ans =1     03     4>> triu(A)ans =1     20     4>> reshape(A, 1, 4)ans =1     3     2     4

5. 矩阵运算函数

函数含义
det(A)行列式
inv(A)逆矩阵
rank(A)矩阵秩
trace(A)对角线元素之和
norm(A)矩阵范数
cond(A)矩阵条件数
[V,D]=eig(A)矩阵的特征值分解,V表示特征向量,D表示特征值
[Q,R]=qr(A)矩阵的QR分解
[L,U]=lu(A)矩阵的LU分解
>> det([1 2; 3 4])ans =-2>> inv([1 2; 3 4])ans =-2.0000    1.00001.5000   -0.5000>> rank([1 2; 2 4])ans =1>> trace([1 2; 3 4])ans =5>> norm([3 4])ans =5>> cond([1 2; 3 4])ans =14.9330>> [V,D] = eig([1 2; 3 4])V =-0.8246   -0.41600.5658   -0.9094D =-0.3723         00    5.3723>> [Q,R] = qr([1 2; 3 4])Q =-0.3162   -0.9487-0.9487    0.3162R =-3.1623   -4.42720   -0.6325>> [L,U] = lu([1 2; 3 4])L =0.3333    1.00001.0000         0U =3.0000    4.00000    0.6667

6.向量内积/外积

函数主要作用
dot点积
cross叉积
>> dot([1 2 3], [4 5 6])ans =32>> cross([1 2 3], [4 5 6])ans =-3     6    -3

7.其他函数

函数主要作用向量行为矩阵行为(默认)
min/max极值单值每列最值
mean平均值单值每列均值
median中位数单值每列中位数
std标准差单值每列标准差
diff相邻差分长度减1每列差分
sort升序排序排序向量每列排序
sum求和总和每列求和
prod乘积累乘每列累乘
cumsum累加和向量累加每列累加
cumprod累乘积向量累乘每列累乘
length最大维长度向量长度二维矩阵为max(行,列)
size维度信息[1,n][m,n]
norm向量/矩阵范数L2 范数谱范数(最大奇异值)
>> A = reshape(1:16, 4, 4)A =1     5     9    132     6    10    143     7    11    154     8    12    16>> min(A)ans =1     5     9    13>> max(A)ans =4     8    12    16>> mean(A)ans =2.5000    6.5000   10.5000   14.5000>> median(A)ans =2.5000    6.5000   10.5000   14.5000>> std(A)ans =1.2910    1.2910    1.2910    1.2910>> diff(A)ans =1     1     1     11     1     1     11     1     1     1>> sort(A)ans =1     5     9    132     6    10    143     7    11    154     8    12    16>> sum(A)ans =10    26    42    58>> prod(A)ans =24        1680       11880       43680>> cumsum(A)ans =1     5     9    133    11    19    276    18    30    4210    26    42    58>> cumprod(A)ans =1           5           9          132          30          90         1826         210         990        273024        1680       11880       43680>> length(A)ans =4>> size(A)ans =4     4>> norm(A)ans =38.6227

字符串

创建字符串以及字符串数组

单引号将内容括起来表示一个字符串,以ASC2码存储。

% 创建字符串
a = 'ABC'
% 创建字符串数组,不可以使用单引号,否则输出会是字符串
>> a = ["hello" "word"]a = 1x2 string 数组"hello"    "word">> a = ['hello', 'word']a ='helloword'

字符函数

函数含义
abs('ABC')返回字符串中每个字符的 ASCII 码(与 double 等价)
double('ABC')返回字符串中每个字符的 ASCII 码
char([65 66 67])将 ASCII 数字转换为对应字符,结果为 'ABC'
int2str(123)将整数转换为字符串 '123'
num2str(3.14)将数值(整数或浮点数)转换为字符串 '3.14'
str2num('1.23 4.56')将字符串解析为数值向量 [1.23 4.56]
strcat('ab', 'cd')字符串拼接,结果为 'abcd',自动去除尾部空格
strvcat('abc', 'defg')垂直拼接字符矩阵,按最大长度补空格
strcmp('abc','abc')比较字符串是否完全相同,返回 1(true)或 0(false)
strncmp('abcdef','abcxyz',3)比较字符串前3个字符是否相同,返回逻辑值
strrep('cat','a','o')将字符串中的 'a' 替换为 'o',结果为 'cot'
strmatch('he', ['hello','hero','hi'])返回所有以 'he' 开头的字符串索引
eval()将字符串理解为代码执行
>> abs('A')ans =65>> double('A')ans =65>> char(65)ans ='A'>> int2str(123)ans ='123'>> num2str(3.14)ans ='3.14'>> str2num('1.23 4.56')ans =1.2300    4.5600>> strcat('ab', 'cd')ans ='abcd'>> strcat('ab', 'cd ')ans ='abcd'>> strvcat('abc', 'defg')ans =2x4 char 数组'abc ''defg'>> strcmp('abc', 'abc')ans =logical1>> strcmp('abc', 'ab')ans =logical0>> strncmp('abcdef', 'abcxyz', 3)ans =logical1>> strncmp('abcdef', 'abcxyz', 4)ans =logical0>> strrep('cat', 'a', 'o')ans ='cot'>> strmatch('he', 'hi')ans =[]>> strmatch('he', 'he')ans =1>> strmatch('he', ["he" "him"; "s" "hem"])ans =14>> strmatch('he', ["hello";"hero";"hi"])ans =12>> eval("a=2")a =2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/83145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营 Day58 图论Ⅷ 拓扑排序 Dijkstra

图论 题目 117. 软件构建 拓扑排序&#xff1a;给出一个有向图&#xff0c;把这个有向图转成线性的排序就叫拓扑排序。 当然拓扑排序也要检测这个有向图是否有环&#xff0c;即存在循环依赖的情况&#xff0c;因为这种情况是不能做线性排序的。所以拓扑排序也是图论中判断有向…

vscode中launch.json、tasks.json的作用及实例

文章目录 launch.json是什么作用多环境调试简单实例进阶使用核心配置项解析调试第三方程序 launch.json是什么 顾名思义&#xff1a;它是在.vscode文件夹下的launch.json&#xff0c;所以是vscode启动调试的配置文件。总结&#xff1a;通过定义调试参数、环境变量和启动方式&a…

NeRF PyTorch 源码解读 - 体渲染

文章目录 1. 体渲染公式推导1.1. T ( t ) T(t) T(t) 的推导1.2. C ( r ) C(r) C(r) 的推导 2. 体渲染公式离散化3. 代码解读 1. 体渲染公式推导 如下图所示&#xff0c;渲染图像上点 P P P 的颜色值 c c c 是累加射线 O P → \overrightarrow{OP} OP 在近平面和远平面范围…

标题:2025海外短剧爆发年:APP+H5双端系统开发,解锁全球流量与变现新大陆

描述&#xff1a; 2025年出海新风口&#xff01;深度解析海外短剧系统开发核心&#xff08;APPH5双端&#xff09;&#xff0c;揭秘高效开发策略与商业化路径&#xff0c;助您抢占万亿美元市场&#xff01; 全球娱乐消费模式正在剧变。2025年&#xff0c;海外短剧市场已从蓝海…

React JSX语法介绍(JS XML)(一种JS语法扩展,允许在JS代码中编写类似HTML的标记语言)Babel编译

在线调试网站&#xff1a;https://zh-hans.react.dev/learn 文章目录 JSX&#xff1a;现代前端开发的声明式语法概述JSX的本质与工作原理什么是JSXJSX转换流程 JSX语法特性表达式嵌入&#xff08;JSX允许在大括号内嵌入任何有效的JavaScript表达式&#xff09;属性传递&#xf…

Unity UI系统中RectTransform详解

一、基础代码示例 public GameObject node; var rect node.GetComponent<RectTransform>();Debug.Log($"anchoredPosition----{rect.anchoredPosition}"); Debug.Log($"offsetMin.x--{rect.offsetMin}"); Debug.Log($"offsetMax.x--{rect.of…

【数据库】并发控制

并发控制 在数据库系统&#xff0c;经常需要多个用户同时使用。同一时间并发的事务可达数百个&#xff0c;这就是并发引入的必要性。 常见的并发系统有三种&#xff1a; 串行事务执行&#xff08;X&#xff09;&#xff0c;每个时刻只有一个事务运行&#xff0c;不能充分利用…

我们来学mysql -- “数据备份还原”sh脚本

数据备份&还原 说明执行db_backup_cover.sh脚本 说明 环境准备&#xff1a;来源数据库(服务器A)&#xff1b;目标数据库(服务器B)dbInfo.sh脚本记录基本信息 来源库、目标库的ip、port及执行路径 # MySQL 客户端和 mysqldump 的路径 MYSQL_CLIENT"/work/oracle/mysql…

【NLP 78、手搓Transformer模型结构】

你以为走不出的淤泥&#xff0c;也迟早会云淡风轻 —— 25.5.31 引言 ——《Attention is all you need》 《Attention is all you need》这篇论文可以说是自然语言处理领域的一座里程碑&#xff0c;它提出的 Transformer 结构带来了一场技术革命。 研究背景与目标 在 Transfo…

深入理解CSS常规流布局

引言 在网页设计中&#xff0c;理解元素如何排列和相互作用至关重要。CSS提供了三种主要的布局方式&#xff1a;常规流、浮动和定位。本文将重点探讨最基础也是最常用的常规流布局&#xff08;Normal Flow&#xff09;&#xff0c;帮助开发者掌握页面布局的核心机制。 什么是…

树结构详细介绍(javascript版)

树结构的基本概念 树是一种非线性数据结构&#xff0c;由节点和连接节点的边组成。与线性数据结构&#xff08;如数组、链表&#xff09;不同&#xff0c;树具有层次结构&#xff0c;非常适合表示有层次关系的数据。 树的基本术语 节点 (Node)&#xff1a; 树中的基本单元&a…

element-plus bug整理

1.el-table嵌入el-image标签预览时&#xff0c;显示错乱 解决&#xff1a;添加preview-teleported属性 <el-table-column label"等级图标" align"center" prop"icon" min-width"80"><template #default"scope"&g…

RabbitMQ和MQTT区别与应用

RabbitMQ与MQTT深度解析&#xff1a;协议、代理、差异与应用场景 I. 引言 消息队列与物联网通信的重要性 在现代分布式系统和物联网&#xff08;IoT&#xff09;生态中&#xff0c;高效、可靠的通信机制是构建稳健、可扩展应用的核心。消息队列&#xff08;Message Queues&am…

零基础远程连接课题组Linux服务器,安装anaconda,配置python环境(换源),在服务器上运行python代码【3/3 适合小白,步骤详细!!!】

远程连接服务器 请查阅之前的博客——零基础远程连接课题组Linux服务器&#xff0c;安装anaconda&#xff0c;配置python环境&#xff08;换源&#xff09;&#xff0c;在服务器上运行python代码【1/3 适合小白&#xff0c;步骤详细&#xff01;&#xff01;&#xff01;】&am…

Redis最佳实践——安全与稳定性保障之访问控制详解

Redis 在电商应用的安全与稳定性保障之访问控制全面详解 一、安全访问控制体系架构 1. 多层级防护体系 #mermaid-svg-jpkDj2nKxCq9AXIW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-jpkDj2nKxCq9AXIW .error-ico…

vue2源码解析——响应式原理

文章目录 引言数据劫持收集依赖数组处理渲染watchervue3中的响应式 引言 vue的设计思想是数据双向绑定、数据与UI自动同步&#xff0c;即数据驱动视图。 为什么会这样呢&#xff1f;这就不得不提vue的响应式原理了&#xff0c;在使用vue的过程中&#xff0c;我被vue的响应式设…

gcc相关内容

gcc 介绍&#xff1a;linux就是由gcc编译出来的&#xff0c;而且好像之前Linux只支持gcc编译。gcc全称为gnu compiler collection&#xff0c;它是gnu项目的一个组成部分。gnu致力于创建一个完全自由的操作系统&#xff0c;我感觉意思就是完全开源的操作系统。gnu有很多组件和…

android 图片背景毛玻璃效果实现

图片背景毛玻璃效果实现 1 依赖 // Glide implementation("com.github.bumptech.glide:glide:4.16.0") kapt("com.github.bumptech.glide:compiler:4.16.0") implementation("jp.wasabeef:glide-transformations:4.3.0") 2 布局<com.googl…

【Java开发日记】你会不会5种牛犇的yml文件读取方式?

前言 除了烂大街的Value和ConfigurationProperties外&#xff0c;还能够通过哪些方式&#xff0c;来读取yml配置文件的内容&#xff1f; 1、Environment 在Spring中有一个类Environment&#xff0c;它可以被认为是当前应用程序正在运行的环境&#xff0c;它继承了PropertyReso…

Spring Boot事务失效场景及解决方案

事务失效场景1&#xff1a;方法非public修饰 原因 Spring事务基于动态代理&#xff08;AOP&#xff09;实现&#xff0c;非public方法无法被代理拦截&#xff0c;导致事务失效。 代码示例 Service public class OrderService {Transactionalprivate void createOrder() { //…