Matlab使用基础

基本命令

clear all %清除Workspace中的所有变量
clc %清除Command Window中的所有命令
%和%%是注释
whos%显示当前内存中的变量信息

基础函数

abs()%取绝对值
char(65)%将ASCII码数值变成字符
num2str(65)%将里面的内容变成字符串
length()%字符串长度,不把'/0'的长度计算进去
path()%将路径添加到搜索路径表的最后

矩阵

A[1 2 3;4 5 2;3 2 7]%创建矩阵
A'%矩阵转置
A(:)%展开矩阵成一列
inv(A)%方阵求逆,矩阵和自己的逆矩阵相乘等于单位矩阵
E=zeros(10,5,3)%创建10行5列3层的三维矩阵注意:MATLAB的索引值不从0开始,从1开始!!!!!E(:,:,1)=rand(10,5)%创建一个10行5列的矩阵,其中的元素是从0到1之间的随机数
,给到E矩阵的第1层
E(:,:,2)=randi(5,10,5)%创建一个10行5列的矩阵,其中的元素是最大为5的正整数的随机数,给到E矩阵的第2层
E(:,:,2)=randi([2,5],10,5)%创建一个10行5列的矩阵,其中的元素是最大为5最小为1的整数的随机数,给到E矩阵的第2层
E(:,:,3)=randn(10,5)%创建一个10行5列的矩阵,其中的元素是标准正态分布中生成的随机数,给到E矩阵的第3层
eye(3)%创建一个3x3的单位矩阵,即主对角线上的元素为1,其它位置的元素为0
magic(5)%生成一个5x5的幻方/魔方矩阵。幻方矩阵是指在每行、每列以及主对角线的元素和均相等的方阵。
B=1:2:9 %创建一个向量B,其中的元素从1开始,以步长2递增,直到不超过9,最后不一定要出现9
repmat(B,3,2)%创建一个新的矩阵,将矩阵B纵向复制3次,横向复制2次
ones(2,4)%创建一个2行4列元素全是1的矩阵A+B%加
A-B%减
A*B%乘
A.*B%点乘
A/B%除
A./B%点除A(2,3)%2行3列元素
A(3, :)%3行一整行,:代表全部
A(:, 4)%4列全部
[m,n]=find(A > 20)%找到矩阵A中大于20的元素的行列索引,返回行索引和列索引的向量m和n

元胞

A=cell(3,4)%创建一个大小为3x4的空元胞数组
A{2}=eye(3)%创建一个3x3的单位矩阵,放在元胞索引为2的位置
B=A{5}取出元胞位置为5的对象给到B

结构体

books=struct('name',{{'Machine Learning','Data Mining'}},'price',[30 40])
%name: {'Machine Learning'  'Data Mining'}
%price: [30 40]books.name
% 1×2元胞数组
%{'Machine Learning'}    {'Data Mining'}books.name(1)
%取出索引1里面的元胞,可以理解为一个指针
% 1×1元胞数组
%{'Machine Learning'}books.name{1}
%取出索引1里面的元胞的内容,可以理解为实际值
% 1×1元胞数组
%'Machine Learning'

流程控制

if ... else ... end
for ... end
while ... end
switch ... case ... end

绘制二维图像

基础例子

x = 0:0.01:2*pi;%创建向量x
y = sin(x);%创建一一对应的向量y
figure%建立一个幕布
plot(x, y)%画出xy线条
title('y = sin(x)')%增加标题
xlabel('x')% x轴标签
ylabel('sin(x)') % y轴标签
xlim([0 2*pi])%x轴坐标限制
legend('y = sin(x)') % 添加图例

进阶例子

x = 0:0.01:20;
y1 = 200 * exp(-0.05 * x) .* sin(x);
y2 = 0.8 * exp(-0.5 * x) .* sin(10 * x);
figure[AX,H1,H2] = plotyy(x, y1, x, y2,'plot');
%创建一个具有多个y轴的图
%返回三个句柄:图形对象、第一个数据集的线条对象、第二个数据集的线条对象set(get(AX(1),'ylabel'),'String','Slow Decay')
%get(AX(1),'ylabel')用于获取第一个y轴的句柄
%然后set函数用于设置该句柄所代表的对象的属性,设置第一个y轴的标签为"Slow Decay"set(get(AX(2),'ylabel'),'String','Fast Decay')
xlabel('Time (\mu sec)')
title('Multiple Decay Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')

绘制三维图像

t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on%打开网格
axis square%将绘图区域设置为一个正方形

图形窗口分割

x=linspace(0,2*pi,60);%在区间[0,2π]中生成包含60个等间距点的向量subplot(2,2,1)%设置当前图形为一个2x2的网格,并将绘图焦点设置在第1个子图上
plot(x,sin(x)-1);
title('sin(x)-1');
axis([0,2*pi,-2,0]);%axis设置x和y轴的可视范围,x 轴0到2π,y轴-2 到0subplot(2,1,2)
plot(x,cos(x)+1);
title('cos(x)+1');
axis([0,2*pi,0,2]);subplot(4,4,3)
plot(x, tan(x));
title('tan(x)');
axis([0,2*pi,-40,40]);subplot(4,4,8)%这回不按照顺序排下去了,就会跳开几个位置
plot(x,cot(x));
title('cot(x)');
axis([0,2*pi,-35,35]);

hold on/off

hold on 命令用于将绘图模式设置为保持当前图形,并在其上绘制新的图形,而不清除现有的图形。这样,你可以在同一张图上绘制多个曲线或图形,而不会清除先前的内容。

hold off 命令用于关闭绘图保持功能,这将导致在下一次绘图时清除现有的图形。当不再需要在同一张图上绘制新的内容时,使用 hold off 可以恢复正常的绘图模式。

因为一般是默认hold on的,所以直接执行hold on不会有什么明显的现象。

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1)
hold off %hold on
plot(x, y2)
xlabel('x')
ylabel('y')
title('Sin(x) and Cos(x)')
legend('sin(x)', 'cos(x)')

图形的保存与导出

(1) 编辑 -> 复制图形
(2) 文件 -> 另存为
(3) 查看 -> 属性编辑器
(4) 调整图片质量:文件 -> 导出设置 -> 大小 设定高度宽度,这时候导出的图形会更加清晰

调用函数

新建一个函数文件funsin.m和一个脚本文件callsin.m,用脚本文件来调用函数文件。

函数文件内容

function f = funsin(var) %定义funsin函数,入参var,输出是变量f。函数的名称必须与文件名相同,并且函数定义必须位于文件的开头
f = sin(var) %将数值给到输出变量f
end

脚本文件内容

type funsin.m%/在命令窗口中显示函数文件的内容
x=[0 pi/2 pi 3*pi/2 2*pi]
sinx=funsin(x)%调用函数

补充内容

搜索路径

当MATLAB 对函数或文件等进行搜索时,都是在其搜索路径下进行的。如果调用的函数在搜索路径之外,那么 MATLAB 会认为该函数不存在。

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

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

相关文章

文本润色工具有哪些,高质量的文本润色软件

在当今信息过载的时代,文本的重要性愈发凸显。即便是最精心构思的文章,若未经过仔细的润色,也难以达到最佳的表达效果。本文将专心分享文本润色工具的种类。 文本润色工具的种类 文本润色工具根据其功能和应用范围可以分为多个种类&#xff…

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

一.背景 此问题是蓝牙列表界面息屏后再点击亮屏蓝牙界面卡住,划不动也不能返回,在人多的时候(附近开启的蓝牙设备过多的时候)会卡住大概四五秒才能滑动. 优化前效果见资源: 二.查找耗时点 根据Android Studio的Profiler工具进行排查,查找主线程时间线比较长的方法,如下:…

12.7 作业

1, #include "widget1.h"Widget1::Widget1(QWidget *parent): QWidget(parent) {//界面设置//修改界面大小this->resize(810,600);//固定界面大小this->setFixedSize(800,600);//修改界面的标题this->setWindowTitle("杰哥和阿伟专场"…

数据结构与算法-D7栈实现及应用

顺序栈 具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top完成操作 sqstack.h stack_creat stack_push stack_empty stack_full 1、判断栈是否为空 2、top--,取:data[top1] stack_top stack_clear stack_fre…

软件工程期末复习(1)

学习资料 软件工程知识点总结_嘤桃子的博客-CSDN博客 软件工程学习笔记_软件工程导论第六版张海藩pdf-CSDN博客 【软件工程】软件工程期末试卷习题课讲解!!_哔哩哔哩_bilibili 【拯救者】软件工程速成(期末考研复试软考)均适用. 支持4K_哔哩哔哩_bil…

单片机学习13——串口通信

单片机的通信功能: 实现单片机和单片机的信息交换,实现单片机和计算机的信息交换。 计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。 通信有并行通信和串行通信两种方式。 在多微机系统以及现在测控系统中信息的交换多采用串行通信方…

看图学源码之 CopyOnWriteArrayList 源码分析

基本简介: 是Java中的一个线程安全的List实现,也是ArrayList 的安全版本,所以就不会有ArrayList 的并发修改异常 的问题产生了 原理 每次在对 List 进行修改时,创建一个新的副本(即拷贝),而不…

共创共赢|美创科技获江苏移动2023DICT生态合作“产品共创奖”

12月6日,以“5G江山蓝 算网融百业 数智创未来”为主题的中国移动江苏公司2023DICT合作伙伴大会在南京成功举办。来自行业领军企业、科研院所等DICT产业核心力量的百余家单位代表参加本次大会,共话数实融合新趋势,共拓合作发展新空间。 作为生…

Linux环境下用yum安装postgres15

1. 下载PostgreSQL 15 安装包 在官网选择对应版本的安装包 https://www.postgresql.org/download/ Linux | CentOS 7 | PostgreSQL 15 2. 安装PostgreSQL 15 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-la…

Windows 10安装FFmpeg详细教程

Windows 10安装FFmpeg详细教程 0. 背景 在搭建之前的项目环境时,需要安装ffmpeg,在此记录下过程 1. 官网下载 点击进入官网:ffmpeg,官网地址:https://ffmpeg.org/download.html 如图所示,点击Windows图标…

TCP通信

第二十一章 网络通信 本章节主要讲解的是TCP和UDP两种通信方式它们都有着自己的优点和缺点 这两种通讯方式不通的地方就是TCP是一对一通信 UDP是一对多的通信方式 接下来会一一讲解 TCP通信 TCP通信方式呢 主要的通讯方式是一对一的通讯方式,也有着优点和缺点…

LoadBalancer将服务暴露到外部实现负载均衡purelb-layer2模式配置介绍

目录 一.purelb简介 1.简介 2.purelb的layer2工作模式特点 二.layer2的配置演示 1.首先准备ipvs和arp配置环境 2.purelb部署开始 (1)下载purelb-complete.yaml文件并应用 (2)查看该有的资源是否创建完成并运行 &#xff…

12.7作业

1. #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//***********窗口相关设置***********//设置窗体大小this->resize(540,410);this->setFixedSize(540,410);//取消菜单栏this->setWindowFlag(Qt::FramelessWindowHint);/…

RNN:文本生成

文章目录 一、完整代码二、过程实现2.1 导包2.2 数据准备2.3 字符分词2.4 构建数据集2.5 定义模型2.6 模型训练2.7 模型推理 三、整体总结 采用RNN和unicode分词进行文本生成 一、完整代码 这里我们使用tensorflow实现,代码如下: # 完整代码在这里 imp…

【概率统计】如何理解概率密度函数及核密度估计

文章目录 概念回顾浅析概率密度函数概率值为0?PDF值大于1?一个栗子 核密度估计如何理解核密度估计核密度估计的应用 总结 概念回顾 直方图(Histogram):直方图是最直观的一种方法,它通过把数据划分为若干个区…

UDP协议实现群聊

代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.IOException; import java.lang.String;public class liaotian extends JFrame{private static final int DEFAULT_PORT8899;private JLabel stateLB…

【C语言快速学习基础篇】之二控制语句、循环语句、隐式转换

文章目录 一、控制语句1.1、for循环1.2、while循环1.3、注意:for循环和while循环使用上面等同1.4、do while循环1.4.1while条件成立时1.4.2、while条件不成立时 C语言介绍 C语言是一门面向过程的计算机编程语言,与C、C#、Java等面向对象编程语言有所不同…

[MySQL--基础]事务的基础知识

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录:生活中最重要的决定就是要做出决定。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 MySQL数据库 事务的目录📕 前言事务简介🚀事务操作🚀准…

晶圆测试工艺介绍

第一章、晶圆测试简介 晶圆测试的方式,主要是通过测试机(事先编好程序)和探针台的联动,依靠探针卡的接触衔接,进行晶圆级的芯片测试。 当探针卡Probecard 的探针正确接触晶圆wafer 内一颗 芯片die的每个接触点bondpads…

ROS 动态坐标变换

在ROS 中,坐标变换是一个重要的概念,因为它允许系统中的不同节点和模块以统一的方式描述物体的位置和方向。 动态坐标变换指的是当机器人或其环境中物体的位姿(位置和姿态)发生变化时,能够实时更新这些信息的过程。 …