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.hqwc.cn/news/257311.html

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

相关文章

dockers安装rabbitmq

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQhttps://www.rabbitmq.com/ Downloading and Installing RabbitMQ — RabbitMQ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management 之后参照:dock…

OpenCV-Python:随机数与随机颜色

目录 Python中随机数 OpenCV-Python随机数 随机颜色的生成 随机噪声生成 代码练习与测试 知识笔记 Python中随机数 在Python中,我们可以使用random模块来生成随机数。random模块提供了一系列的函数来生成不同类型的随机数。以下是一些常用的随机数生成函数&…

解决git clone报错: Failed to connect to github.com port 443 after 21068 ms: Couldn’t connect to server

解决git clone报错: Failed to connect to github.com port 443 after 21068 ms: Couldn’t connect to server 1. 问题 不能git clone来自Github上的仓库,报端口443错误。 2.解决方案 主要是由于Git端口与系统代理不一致 默认的端口号:1…

麒麟KYLINOS操作系统修改GRUB字体大小

原文链接:麒麟iso镜像中GRUB字体大小怎么改? hello,大家好啊,对于使用Linux系统的朋友来说,GRUB(GRand Unified Bootloader)是一个非常熟悉的名字。它是Linux系统中最常用的启动引导程序。但有时…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它…

基于JAVA+SpringBoot+微信小程序的宠物领养平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着人们生活水平的提…

系列学习前端之第 2 章:一文精通 HTML

全套学习 HTMLCSSJavaScript 代码和笔记请下载网盘的资料: 链接: https://pan.baidu.com/s/1-vY2anBdrsBSwDZfALZ6FQ 提取码: 6666 HTML 全称:HyperText Markup Language(超文本标记语言) 1、 HTML 标签 1. 标签又称元素&#…

通过51单片机控制28byj48步进电机按角度正反转旋转

一、前言 本项目基于STC89C52单片机,通过控制28BYJ-48步进电机实现按角度正反转旋转的功能。28BYJ-48步进电机是一种常用的电机,精准定位和高扭矩输出,适用于许多小型的自动化系统和机械装置。 在这个项目中,使用STC89C52单片机…

粒子库particles.vue3在项目中的使用

一、particles.vue3是什么 particles.vue3 是一个 Vue 3 的组件库,用于在 Vue 3 项目中创建和管理粒子效果。它基于 tsparticles 引擎,提供了一系列的 Vue 组件,使我们能够轻松地在应用程序中添加动态的粒子效果。   如果您正在开发一个 V…

python+requests接口自动化测试框架实例详解教程

1、首先,我们先来理一下思路。 正常的接口测试流程是什么? 脑海里的反应是不是这样的: 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果(有的需要数据库辅助) —> 生成测试报…

21-网络通信

21.1——网络程序设计基础 网络程序设计编写得到是与其他计算机进行通信的程序 21.1.1——局域网与互联网 为了实现两台计算机的通信,必须用一个网络线路连接两台计算机 21.1.2——网络协议 网络协议规定了计算机之间连接的物理、机械 (网线与网卡的连接规定)、…

Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上

1.1 目的 部署MysqlCluster集群环境 1.2 MySQL集群Cluster原理 1 数据分片 MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上。这样可以将数据负载分散到多个服务器上,提高系统的性能和可扩展性。 2. 数据同步 MySQL集群Cluster使…