MATLAB复习

2023-11-11

目录

矩阵

定义矩阵

定义格式:

矩阵用方括号“[ ]”括起;
元素与元素 之间用 空格 或 逗号 隔开;
行与行 之间用 分号 隔开(分号可用回车代替)

例:

a=[1,2
    3,4
    5,6
    7,8];

查找矩阵元素

a(5); 从上往下,选中第五个
[m,n]=find(A>5); //A矩阵中第m行第n列的数大于5
K = length(z); //一维数组的长度
[m,n]=size(z); // 数组的维度,m行n列
b = class(A); //数组类型

特殊矩阵

x1 = linspace(-2,2,10); //定数线性采样法 x为起始值,y为终值,z为选取的数字个数
y = logspace(-3,3,10); //定数对数采样法 x为起始值(logx),y为终值(logy),z为选取的数字个数
ones(20,4) // x行y列的值全为1的矩阵
zeros(20,4) // x行y列的值全为0的矩阵
E=magic(4); //魔方数组 行、列、对角线的和都等于一个定值
D=eye(3); //对角—单位数组 x行x列
randn(2,3) //产生正态分布的x行y列的随机数组
diag(diag(a)) // 内diag取D阵的对角元素,外diag利用其生成对角阵

矩阵运算 (乘方与点乘)

x ^ 3; //数组的乘方,数组要为方阵
C=A .* B // 点乘(对应元素相乘,注意数组维度一致)

字符串数组

创建字符串

x = 'MATLAB is a good software',b=class(x),c=size(x)
//字符串的元素标识(用单引号扩起)  
//空格也占一个元素位

查找字符

x1=x(8:9),//选择第8个和第9个字符,查找单个/多个字符
x2=x(end: -1:1) // * 倒序输出 //从左往右为1 —> n,从右往左为-1—>1.
e= find(x>=‘a’&x<=‘z’)%% find找字符串找的是位数,查询所找字符的位数

字符串转换

y=double(x),//查找字符串的 ASCII 码

char(y)//查找ASCII码所对应的字符串

Y=‘例"3.2"说明’ // :中文中有英文字符,要用双引号;
YX= [Y,’ ',x] //小字符串变大字符串( 扩展字符串

upper(x)//字符串大写

m=5.8
x=['there are ',num2str(m),'kg banana']//num2str()把数字转换为字符串

创建字符串数组

字符串数组以及转换函数

YY=['12345678'
    '123     '
    '456     '
    '789     ']//创建数组时,要注意每行元素位数相同(维度一致)

元胞数组

//允许不同的数据类型合成新的数组
//元胞有两个以上则不再显示

元胞数组的创建

A = {'这是元胞数组',[1,2;3,4];ones(3,4),{'word','meet','again'}}//直接写
B(1,1)={'这是元胞数组'}//分开写
B(1,2)={[1,1;2,2]}
B(1,3)={[123;456;789]}
B(1,4)={'word'}

元胞数组的显示——celldisp和cellplot

celldisp(A)//显示所有
A{1,1}//只显示第一行第一列的元素
A{1,2}
A{2,1}
A{2,2}{1}

cellplot(A)//可视化,图片显示

元胞数组的扩充和收缩

D={[1-3*i;2+5i],{'bb';'cc';'dd'}}
C{1,1}='hello world',C{1,2}=randn(3)
CD=[C D]                  //列扩充
C_D=[C;D;C]//行扩充
cellplot(D)
cellplot( C )
cellplot(CD)
cellplot(C_D)
C_D(2,:)=[ ]                   //收缩   把空矩阵替换第二行
cellplot(C_D)

元胞数组的获取

Y=A{1,2}//被第一行,第二列的元素赋值(成为那个元素)
YG=A(1,2)//获取第一行第二列的元胞元素(一个整体获取)

结构数组

结构数组的创建

直接赋值法:结构数组名(结构序号).域 = 内容
str(1).age = '1'
str(1).name = 'str'
str(1).text = [1,2,3;4,5,6]

str(2).age = '2'
str(2).name = 'string'
str(3).text = [2,2,2;4,4,4]

来源:我自己:)

struct函数赋值法
S(1) = struct('name','str','age','1','text',[1,2,3;4,5,6])
S(2) = struct('name','string','age','2','text',[1,1,1;2,2,2])

结构数组的获取和设置

M1 = str(1)//获取结构数组第一行内容
M2 = str(1).text(1,2)   //获取结构数组第一行的矩阵的第一行第二个
M3 = str(1).text//获取结构数组第一行的矩阵
getfield 获取
M4 = getfield(str,{2},'name')//获取str结构数组第二行的'name'值
M5 = getfield(str,{2},'name',{2})///获取str结构数组第二行'name'值的第二个字母
setfield 设置
str = setfield(str,{2},'name','chi')//设置str结构数组第二行'name'的值为'chi'
fieldnames 获取所有域

M7 = fieldnames(str)

扩充
str(2,2)=struct('name','x','age','3','text',[2,2,3;4,4,6])//直接设置str结构数组的第二行第二个为结构数组。。。。

str (1,:) = [] // 让结构数组第一行为空

域名的增加与删除

str(1).zengjia = ‘增加’ // 直接增添新的域名

str = rmfield(str,‘age’) //通过 rmfield 移除

作图函数

多窗口 figure

t=0:pi/100:2*pi;
y1=sin(t);y2=sin(t+1);y3=sin(t+3);
plot(y1)
figure(2),plot(t,y2)
figure(3),plot(t,y3)

统一窗口多个子图 subplot

subplot (m,n,k) m*n 个图,第 k 个

x=0:pi/100:2*pi;
subplot(2,2,1),plot(x,sin(x))//可以逗号隔开
subplot(222),plot(x,sin(3*x))//可以不隔开
subplot(223),plot(x,sin(4*x))
subplot(224),plot(x,sin(5*x))

统一窗口多次叠绘 hold

hold on 使当前坐标系和图像保持不变
hold off 使当前坐标系和图像不保持
hold 在多个坐标系和图像中切换

t=0:pi/100:2*pi;
x=cos(3*t);y=0.001*sin(3*t+1);
plot(t,x,'-yo')
hold on
plot(t,y,'-rh')
opengl('save', 'software')

图形窗口的创建、选择、删除

plot、figure、close

t=0:pi/100:2*pi;
y1=sin(t);y2=sin(t+1);y3=sin(t+3);
plot(y1)
figure(2),plot(t,y2)
figure(3),plot(t,y3)
close(1)

双纵坐标图 plotyy

plotyy(x1,y1,x2,y2)

t=(-5):pi/100:2*pi;
y1=sin(t);y2=0.01*cos(t);
plotyy(t,y1,t,y2);grid  //  grid  网格 

坐标轴控制 (放缩) axis

axis([xmin,xmax,ymin,ymax])

t=0:0.5:7;
x=sin(t);
plot(t,x,'r-x'),grid
axis([0,3*pi,-2,2])//扩大坐标轴

网格线控制 grid

grid on
grid off
grid

t=0:0.5:7;
x=sin(t);
plot(t,x,'r-x'),grid

添加图名 title

添加坐标轴名 xlabel ylabel

x=0:0.1:3*pi;y=exp(-0.5*x).*cos(x)
plot(x,y,'r'),grid on, title('衰减的余弦函数')
xlabel('x')//括号里加字符串
ylabel('(exp(-0.5*x))*cos(x)')
t=0:0.1:7;
x=sin(t)
plot(t,x,'r'),grid on,title('正弦函数')
xlabel('t')
ylabel('sin(t)')

设置坐标刻度标示 set

两种方法:标示向量表示、字符串表示

set(gca,‘xtick’,标示向量)
set(gca,‘ytick’,标示向量)
set(gca,‘xticklabel’,‘字符串|字符串|。。。’)
set(gca,‘yticklabel’,‘字符串|字符串|。。。’)

//用向量标示坐标轴的刻度

t=0:0.1:7;
x=sin(t),plot(t,x,'r')
set(gca,'xtick',[0 1.4 3.15 5.6 6.28],'ytick',[0.1 0.4 0.6 0.8])

//用字符串标示坐标轴的刻度

t=0:0.1:7;
x=sin(t),plot(t,x,'r')
set(gca,'xticklabel',{'one','two','three','four','five','six','seven','eight'})

添加图例 legend(s,pos)在指定位置添加图例

删除图例 legend off

t=(-5):pi/100:2*pi;
y1=sin(t);y2=0.01*cos(t);
plotyy(t,y1,'-g',t,y2,': o');grid  
legend('sin(x)','cos(x)')  

添加文字注释 text

text (xt,yt,‘s’) s 为特殊字符时,要加 \

gtext(s) 用鼠标在位置上标注
t=(-5):pi/100:2*pi;
y1=sin(t);
plot(t,y1)
text(2,sin(2),'\rightarrow this is zero for \omega')
x=0:0.1:2*pi;y1=sin(x);y2=cos(x);
plot(x,y1,"r",x,y2,'bo'),grid on
title('正弦曲线和余弦曲线'),
xlabel('弧度值')
ylabel('函数值')
legend('sin(x)','cos(x)')
text(2.3,0.8,'\leftarrow 正弦函数')
text(5,0.2,'\leftarrow 余弦函数')

特殊坐标二维图型

对数坐标图形 semilogx、semilogy、loglog

semilogx(x,y,‘参数’) x轴为以10为底的对数坐标
semilogy(x,y,‘参数’) y轴为以10为底的对数坐标
loglog(x,y,‘参数’) x轴和y轴都为以10为底的对数坐标

x=0:0.05:2;y=10.^x;subplot(221)
semilogx(x,y),grid,title('semilogx graph')
subplot(222),semilogy(x,y),title('semilogy graph'),grid
subplot(223),loglog(x,y),title('loglog graph'),grid
subplot(224),plot(x,y),title('linear graph'),grid
极坐标图形 polar

polar (theta,radius,‘参数’)

t=0:0.01:2*pi;r1=1*(1+sin(t))
polar(t,r1)

条形图 bar、barth、group、stacked

垂直、水平方向
bar(x,y,‘参数’) 垂直
barh(x,y,‘参数’) 水平
group 分组
stacked 叠加

x=3:5;y=[20 30 40;5 15 20;1 2 3];
subplot(221),bar(x,y,'group')
subplot(222),bar(x,y,'stacked')
subplot(223),barh(x,y,'group')
subplot(224),barh(x,y,'stacked')

阶梯图 stairs

x=3:0.2:7;y=cos(x);
stairs(x,y,':pr'), title('两个向量的阶梯图'),                    
stairs(x,'-or'), title('一个向量的阶梯图'),   //相对于x = y 的函数
grid

基本三维图形 plot3

plot3(x,y,z,'s')
plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',....)
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t,':pg')
axis square* //产生正方形坐标系
grid on
xlabel('x'),ylabel('y'),zlabel('z'),

三维曲面 mesh、surf

[x,y]=meshgrid([-1:0.1:1])
z=x.^2 +y.^2;
subplot(121),mesh(x,y,z)
subplot(122),surf(x,y,z)

规整坐标 meshgrid

X、Y 为栅格点坐标

 [X,Y]=meshgrid(x,y)

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R )./R;

今天逛@小默haa的博客时,又发现一位大佬,然后在这个大佬的博客里又发现了MATLAB相关的文章,整合得非常不错,挂这参考——
@stronger_er—— 常用的 Matlab 的函数
后面我也或许会学习他的方式写一篇(或许吧~)。
2021.12.13.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB复习 的相关文章

  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • 帮助我理解FFT函数(Matlab)

    1 除了负频率之外 FFT 函数提供的最小频率是多少 是零吗 2 如果它为零 我们如何在对数刻度上绘制零 3 结果总是对称的 或者只是看起来是对称的 4 如果我使用abs fft y 来比较2个信号 我是否会失去一些准确性 1 除了负频率之
  • Matlab:2行10列的子图

    如何在 matlab 中绘制 20 幅图像 2 行 10 列 我知道我必须使用 子图 功能 但我对给出的参数感到困惑 我尝试给予 子图 2 10 行索引 列索引 但它似乎不起作用 请帮忙 的前两个参数subplot函数分别给出图中子图的总行
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 使用不同的背景颜色保存 MATLAB 图窗

    我想打印一个带有深色背景和白色标签的 MATLAB 图 如果我使用print or saveas命令我不知何故失去了颜色 绘图符号再次变暗 背景变为白色 points rand 100 3 plot3 points 1 points 2 p
  • Matlab strcat 不返回字符串?

    imgstr 无法识别 strcat 的输出字符串 homedir C Users images for img 01 bmp 02 bmp 03 bmp imgstr strcat homedir img I imread imgstr
  • 图像处理方面的空间和时间表征有什么区别?

    我是学习图像处理的初学者 我对空间和时间表征的概念有点困惑 那么 对于空间表征来说 是不是像一张二维地图 包含了一些关于地图的统计信息呢 就时间特征而言 值是相对于时间的吗 这意味着什么以及我们为何关心 谢谢 当您在不同时间拍摄一系列图像时
  • 霍夫变换检测和删除线

    我想使用霍夫变换检测图像中的线条 但是我不想绘制线条 而是想删除原始图像中检测到的每条线条 image imread image jpg image im2bw image BW edge image canny imshow BW fig
  • 在 Python 上显示 Matlab mat 文件中的图像

    我目前正在尝试显示从此下载的 Mat 文件中的图像site http www rctn org bruno sparsenet 这是一个 mat 文件 所以我尝试使用 scipy io loadmat 函数加载它 但我似乎无法绘制图像 我究
  • matlab中优先级队列的实现方法

    matlab中有没有提供minpriorityqueue功能的库 import java util PriorityQueue import java util public class MyQueue Comparator
  • 在 MATLAB 中验证输入的最佳实践

    在验证 MATLAB 函数中的输入时 什么时候使用 inputParser 比使用断言更好 或者还有其他更好的工具可用吗 我个人发现使用 inputParser 不必要地复杂 对于 Matlab 始终需要检查 3 项内容 存在 类型和范围
  • GO TO 语句 - Fortran 到 Matlab

    我一直在努力将此网格搜索代码从 Fortran 转换为 Matlab 但是我无法正确合并 GO TO 语句 我正在尝试使用 while 循环 但我认为我需要其他东西来结束搜索 任何帮助将不胜感激 vmax 1 0E 15 amax G 1
  • MATLAB 问题中的 Parfor

    为什么我不能使用parfor在这段代码中 parfor i 1 r for j 1 N r xr j N r i 1 x i r j 1 end end 这是错误 错误 parfor 中的变量 xr 无法分类 请参阅 MATLAB 中的并行
  • 在 numpy/scipy 中查找 matlab 函数

    是否有一个等价的函数find A gt 9 1 来自 numpy scipy 的 matlab 我知道有nonzeronumpy 中的函数 但我需要的是第一个索引 以便我可以在另一个提取的列中使用第一个索引 Ex A 1 2 3 9 6 4
  • Python 中 Matlab 'fscanf' 的等价物是什么?

    Matlab函数fscanf 似乎很强大 python 或numpy 中是否有相同的等效项 具体来说 我想从文件中读取矩阵 但我不想迭代每一行来读取矩阵 类似的东西 来自 matlab 用于读取 2D 1000x1000 矩阵 matrix
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • Matlab 错误:()-索引必须出现在索引表达式的最后

    我有这段代码 想要在制表符分隔的 txt 文件中写入一个数组 fid fopen oo txt wt for x 1 length s fprintf fid s t n s x 1 end fclose fid 但我收到此错误 Error

随机推荐

  • 万众瞩目的2021中国华录杯·数据湖算法大赛火热进行中!

    2021中国华录杯 数据湖算法大赛火热进行中 总奖金69 5万元 提供 人才录用直通车 创业扶持 双创中心办公场地 更有入驻数据湖科技企业孵化器 加速产品和项目落地的机会 华录杯大赛官网 开发者社区 https dev ehualu com
  • Idea清除缓存并重启解决的问题

    Idea清除缓存并重启解决很多莫名的问题 先介绍怎么清除缓存重启 在分享解决的问题 1 点击File 菜单 如下操作 2 点击 Restart 按钮 然后就清除缓存 关闭 重启服务 3 解决 配置缓存问题 如果你修改了maven的setti
  • win10修改jdk版本之后不生效的有效解决方法

    问题起因 今天学习seata的时候 启动seata服务发现启动不了报下图错误 发现是自己jdk版本太高了 现在我用的是jdk17 然后我修改jdk的环境变量 确定保存好 发现jdk的版本还是没有变化 问题原因 当使用安装版本的JDK程序时
  • PyTorch(1) torch.nn与torch.nn.functional之间的区别和联系

    在阅读PyTorch官网的教程的时候 发现介绍如何利用Pytorch搭建一个神经网络的示例代码是这样写 import torch from torch autograd import Variable import torch nn as
  • msvcp120.dll文件缺失一键修复方法,靠谱的多种修复msvcp120.dll方案

    msvcp120 dll文件的丢失 其实是比较常见的 msvcp120 dll是一个Microsoft Visual C Redistributable的关键文件 它包含了一些用于C 编程的标准函数和类的定义 如果msvcp120 dll丢
  • [Telegram X]旧版分享 突破被锁群组

    Telegram X的锁群是由于 App Store 审核时发现Telegram官方并不限制18 社会舆论等的讨论 在 版本 5 0 2 版本号825487096 时就已经封禁该类群组 注 可能由于新版审核时由于存在这些内容被禁止发布在Ap
  • 初识OceanBase

    OceanBase 是一款由阿里巴巴公司自主研发的高性能 分布式的关系型数据库 支持完整的 ACID 特性 高度兼容 MySQL 协议与语法 能够以最小的迁移成本使用高性能 可扩张 持续可用的分布式数据服务 OceanBase 实现了数千亿
  • Redis面试题(IO多路复用)

    目录 Redis是单线程的 但是为什么还那么快 阻塞IO 非阻塞IO IO多路复用 网络模型 面试回答 Redis是单线程的 但是为什么还那么快 答 Redis是纯内存操作 执行速度非常快 采用单线程 避免不必要的上下文切换可竞争条件 多线
  • 铜缆有哪些优点?

    铜缆包含由铜金属制成的电线 长期以来一直用于传输数据 这些电缆使用流经铜线的电脉冲将数据从始发端传输到接收端 铜电缆通常用于电信行业 汽车行业和供电系统 铜缆有哪些优点 优质的电导体 铜是非常好的电导体之一 非常适合使用电脉冲传输数据 易于
  • CSS图标与链接

    目录 如何添加图标 Font Awesome 图标 实例 Bootstrap 图标 实例 Google 图标 实例 为图标添加样式或颜色 设置链接样式 实例 实例 文本装饰 实例 背景色 实例 链接按钮 实例 更多实例 如何添加图标 向 H
  • 结构体强制类型转换

    在c语言中 结构体和int等类型一样 都是数据类型 其他类型怎么转换 结构体就怎么转换 没有特殊的地方 对于这个问题 可能想问的是这个吧 如果将一个结构体强制类型转换为另一个结构体 或者类型 那这个结构体的成员怎么样了 如果将一个结构体强制
  • 智能化的设备管理系统,为企业信息化建设添砖加瓦

    设备管理的智能化 数字化 可视化是企业信息化建设的三大趋势 也是智能智慧工厂建设的重要内容 因此引进成熟先进的设备管理系统 是每一个企业当下的重要工作 璞华大数据HawkEye设备智能维保平台分为两个维度协助企业进行设备管理 即设备资产管理
  • 11-10 格式化文本的输入输出

    1 scanf 和 printf scanf 和 printf 函数日常使用较多 此处不多介绍了 详细内容可参考 https zh cppreference com w c io fscanf 2 sscanf 和 sprintf ssca
  • JVM虚拟机技术原理与实现

    一 Java语言与Java虚拟机 1 Java语言简介 Java是Sun公司推出的Java语言和Java平台的总称 在操作系统中安装Java平台后Java应用程序即可直接运行 Java程序被编译成字节码解释执行 使Java程序与平台无关 J
  • es根据条件删除数据

    es根据条件删除数据 POST请求 http localhost 9200 indexName delete by query 请求参数 query match columnName 搜索列的条件
  • 哪些元器件在未来会有更广泛的应用?

    随着科技的发展和进步 电子技术已经成为现代社会的重要组成部分 元器件作为电子产品的基本构成单元 其发展和应用对于电子技术的进步和创新有着至关重要的作用 随着人工智能 物联网和智能制造等新兴技术的快速发展 一些元器件已经或者将在未来得到更广泛
  • 解决 mysql 自动增长的 id 不是从 1 开始 或 不连续

    原因 1 insert 失败后 id 已自动增加 会造成 id 不连续 2 delete 后 再重新插入数据后 id 会从删除前最后的 id 开始增加 造成 id 不是从1开始增加 注意 删除全部数据时 不要用 delete from ta
  • Random.Range()的范围问题

    Random Range 方法的是进行差生随机数的一个方法 int i Random Range min max 这里进行产生的随机数 当min max相等 产生的随机数返回的是min 因为min max 产生的最大的也就是max 当min
  • HTML-页面经3秒之后自动跳转,动态刷新秒数

    样图 div div
  • MATLAB复习

    目录 矩阵 定义矩阵 查找矩阵元素 特殊矩阵 矩阵运算 乘方与点乘 字符串数组 创建字符串 查找字符 字符串转换 创建字符串数组 元胞数组 元胞数组的创建 元胞数组的显示 celldisp 和 cellplot 元胞数组的扩充和收缩 元胞数