【MATLAB】MATLAB学习笔记

MATLAB入门

  • 基础操作
  • 变量命名
  • 数据类型
  • 逻辑和流程控制
    • 循环结构
    • 分支结构
  • 绘图基本操作
    • 二维平面绘图
    • 绘图参数
    • 三位立体绘图
    • 图像窗口的分割

本文参考B站视频:BV13D4y1Q7RS
由于我对于C语言很熟悉,很多语法是会参考C来学

基础操作

  1. 清屏
    %% 清空环境变量及命令
    clear all %清除Workspace中的所有变量(右侧工作区)
    clc %清除Command Window中的所有命令(命令行窗口)
    
  2. 注释
    %%
    %
    
  3. 查功能
    doc 你要查询的
    

变量命名

变量命名规则

  • 变量名区分大小写
  • 变量名长度不超过63位(MATLAB R2012a 32bit和64bit计算机上测试结果)
  • 变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点
  • 变量名应简洁明了,通过变量名可以直观看出变量所表示的物理意义

数据类型

  1. 数字

  2. 字符

    s='a'  %单引号表示字符串
    abs(s)  %输出s的ASCII码
    char(97) %输出ASCII码对应的字符
    num2str(65) % Number To Str输出字符数字65
    
  3. 字符串

    str='I love MATLAB & Machine Learning'
    length(str) %字符串长度
    
  4. 矩阵
    矩阵的定义与构造

    %% 矩阵的定义与构造
    A1 = [1,2,3,4,5,6,5,4,6]
    B=1:2:9 %1-9隔1取值,第二个参数为步长,不可缺省
    C = repmat(B,3,2) %重复执行3行2列A2 = [1 2 3; 4 5 2; 3 2 7] %3*3D = ones(2,4) %生成一个2行4列的全1矩阵E = zeros(10,5,3)   %创建一个10行5列3维的全0矩阵% rand(m,n)生成m*n均匀分布的伪随机数,分布在(0~1)之间
    % rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是’single’
    % rand(RandStream,m,n)利用指定的RandStream(随机种子)生成伪随机数
    F(:,:,1) = rand(10,5)   %10*5 % randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机数
    % randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
    % randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵
    E(:,:,2) = randi(5,10,5)% randn生成标准正态分布的伪随机数(均值为0,方差为1)
    E(:,:,3) = randn(10,5)
    

    矩阵的运算

    %% 矩阵的运算
    A = [1 2 3 4; 5 6 7 8]
    B = [1 1 2 2; 2 2 1 1]
    C = A + B
    D = A - B
    E = A * B'
    F = A .* B % .*表示对应项相乘
    G = A / B %相当于A*B的逆
    H = A ./ B % ./表示对应项相除I = A2'      % A转置
    J = inv(A) % 逆矩阵
    

    数组下标

    %% 数组下标
    B=A(2,3)
    C=A(3,:)    %第三行
    D=A(:,4)    %第四列 
    [m,n]=find(A >20)   %找符合()中式子的数字下标
    
  5. 元胞数组

    %% 元胞数组
    A = cell(1,6)
    A{2} = eye(3)   %下标从1开始 eye(3)对角线为1的3*3矩阵
    A{5} = magic(5) % magic(5)5*5幻方矩阵
    B = A{5}    %取A第5个cell
    

    在这里插入图片描述

  6. 结构体

    %% 结构体
    books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40])
    books.name 
    books.name(1)   %取cell
    books.name{1}   %取字符串
    

逻辑和流程控制

循环结构

  1. for循环

    %% for循环
    语法格式:
    for循环变量=初值:步长:终值(步长可省略,默认为1)执行语句1...执行语句n
    end
    
    %【例5-8】求1^2+2^2+3^2+4^2+5^2的和。程序设计为:
    sum = 0
    for n= 1:1:5sum = sum +n^2;
    end
    

    在这里插入图片描述

    在这里插入图片描述

    sum = 0;
    for i= 1:5p= 1;for j=1:ip=p*j;endsum = sum + p;
    end
    

    在这里插入图片描述

  2. while循环

    %% while
    语法格式:
    while 条件表达式执行语句1...执行语句n
    end
    
    % 【例5-11】求1+2+3+4+5+…+10的和。
    s= 0
    n= 1
    while n<= 10 %设置循环条件s =s+nn =n+1
    end
    

    在这里插入图片描述

    %【例5-12】设计一段程序,求1~100的奇数和程序设计为:
    x= 1
    sum = 0
    while x<101sum= sum+ x;x =x+2
    end
    

    在这里插入图片描述

分支结构

  1. if…end

    %% if...end
    语法格式:
    if 条件表达式...语句体...
    end
    
  2. if…else…end

    %% if...else...end
    语法格式:
    if 条件表达式语句体1
    else语句体2
    end
    
  3. switch…case…end

    %% switch
    switch 表达式(数值或字符串)case数值或字符串1语句体1;case数值或字符串2语句体2;...otherwise语句体n;
    end
    

    switch后面表达式的值为数值变量或字符变量,通过这些值与case后面数值或字符串的值进行比较,与哪一个 case的值相同就执行哪一个case下面的语句体,如果与所有case的值都不相同,则执行otherwise下面的语句体。otherwise语句可以省略,如果省略ptherwise,所有case都不满足时跳出分支结构,另外switch必须与end配对使用。

绘图基本操作

二维平面绘图

%% 二维平面绘图
x = 0:0.01:2*pi %定义x的范围,第二个参数表示步长
y = sin(x)
figure %建立一个幕布
plot(x,y) %绘制当前二维平面图
title('y = sin(x)') %标题
xlabel('x') %x轴
ylabel('sin(x)') %y轴
xlim([0 2*pi]) % 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'); %共用一个x的坐标系,在y上有不同的取值
%设置相应的标签
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time(\musec)')
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')
%hold on 在图像基础上继续绘图
%hold off %不保留当前操作
grid on %加网格线
axis square %使整个图(连同坐标系)呈方体

在这里插入图片描述

图像窗口的分割

%% 图像窗口的分割
x=linspace(0,2*pi,60);
subplot(2,2,1)%用来给幕布分格,表示将幕布均等分成2行2列,将图形放到第一个格子中
plot(x, sin(x)-1);
title('sin(x)-1');axis([0,2*pi,-2,0])subplot(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])

在这里插入图片描述

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

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

相关文章

图腾柱PFC工作原理:一张图

视屏链接&#xff1a; PFC工作原理

docker学习笔记——Dockerfile

Dockerfile是一个镜像描述文件&#xff0c;通过Dockerfile文件可以构建一个属于自己的镜像。 如何通过Dockerfile构建自己的镜像&#xff1a; 在指定位置创建一个Dockerfile文件&#xff0c;在文件中编写Dockerfile相关语法。 构建镜像&#xff0c;docker build -t aa:1.0 .(指…

【每日一题】2834. 找出美丽数组的最小和-2024.3.8

题目&#xff1a; 2834. 找出美丽数组的最小和 给你两个正整数&#xff1a;n 和 target 。 如果数组 nums 满足下述条件&#xff0c;则称其为 美丽数组 。 nums.length n.nums 由两两互不相同的正整数组成。在范围 [0, n-1] 内&#xff0c;不存在 两个 不同 下标 i 和 j &…

阿里云实现两个VPC网络资源互通

背景 由于实际项目预算有限&#xff0c;两套环境虽然分别属于不同的专有网络即不同的VPC&#xff0c;但是希望借助一台运维机器实现对两个环境的监控和日常的运维操作 网络架构 如下是需要实现的外网架构图&#xff0c;其中希望实现UAT环境的一台windows的堡垒机可以访问生产…

第G3周:CGAN入门|生成手势图像

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 一、前置知识 CGAN&#xff08;条件生成对抗网络&#xff09;的原理是在原始GAN的基础上&#xff0c;为生成器和判别器提供 额外的条件信息…

【linux】04 :linix实用操作

1.常用快捷键 ctrlc表示强制停止。linux某些程序的运行&#xff0c;如果想强制停止&#xff0c;可以使用&#xff1b;命令输入错误&#xff0c;也可以通过ctrlc,退出当前输入&#xff0c;重新输入。 ctrld表示退出登录&#xff0c;比如退出root以回到普通用户&#xff0c;或者…

Stable Diffusion 模型下载:ZavyChromaXL(现实、魔幻)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 作者述&#xff1a;该模型系列应该是用于 SDXL 的 ZavyMix SD1.5 模型的延续。主要重点是获…

背包问题算法

背包问题算法 0-1背包问题二维数组一维数组 完全背包问题二维数组一维数组 多重背包问题一维数组 0-1背包问题 问题&#xff1a;背包的容量为9&#xff0c;有重量分别为[2, 4, 6, 9]的四个物品&#xff0c;价值分别为[3, 4, 5, 6]&#xff0c;求背包能装的物品的最大价值是多少…

Orange3数据预处理(预处理器组件)

1.组件介绍 Orange3 提供了一系列的数据预处理工具&#xff0c;这些工具可以帮助用户在数据分析之前准备好数据。以下是您请求的预处理组件的详细解释&#xff1a; Discretize Continuous Variables&#xff08;离散化连续变量&#xff09;&#xff1a; 这个组件将连续变量转…

个人网站展示(静态)

大学期间做了一个个人博客网站&#xff0c;纯H5编码的网站&#xff0c;利用php搭建了一个留言模块。 有需要源码的同学&#xff0c;可以联系我~ 首页&#xff1a; IT杂记模块 文人墨客模块 劳有所获模块 生活日志模块 关于我 一个推崇全栈开发的前端开发人员 微信: itrzzh …

elasticsearch篇

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近…

代码随想录算法训练营Day39 || leetCode 762.不同路径 || 63. 不同路径 II

62.不同路径 每一位的结果等于上方与左侧结果和 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m,vector(n,0));for (int i 0; i < m; i) dp[i][0] 1;for (int j 0; j < n; j) dp[0][j] 1;for (int i 1; i < m; …

使用docker部署redis集群

编写脚本 批量创建目录文件&#xff0c;编写配置文件 [rootlocalhost ~]# cat redis.sh #/bin/bash for port in $(seq 1 6); do mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >>/mydata/redis/node-…

记录西门子:IO隔离SCL编程

在PLC变量中创建IO输入输出 在PLC类型中创建输入和输出&#xff0c;并将PLC变量的输入输出名称复制过来 创建一个FC块或者FB块 创建一个DB块 MAIN主程序中&#xff1a;

【UVM_phase objection_2024.03.08

phase 棕色&#xff1a;function phase 不消耗仿真时间 绿色&#xff1a;task phase 消耗仿真时间 run_phase与右边的phase并行执行&#xff0c;右边的phase&#xff08;run_time phase&#xff09;依次执行&#xff1a; List itemreset_phase对DUT进行复位&#xff0c;初始…

24 深度卷积神经网络 AlexNet【李沐动手学深度学习v2课程笔记】(备注:含AlexNet和LeNet对比)

目录 1. 深度学习机器学习的发展 1.1 核方法 1.2 几何学 1.3 特征工程 opencv 1.4 Hardware 2. AlexNet 3. 代码 1. 深度学习机器学习的发展 1.1 核方法 2001 Learning with Kernels 核方法 &#xff08;机器学习&#xff09; 特征提取、选择核函数来计算相似性、凸优…

总结:Spring创建Bean循环依赖问题与@Lazy注解使用详解

总结&#xff1a;Spring创建Bean循环依赖问题与Lazy注解使用详解 一前提知识储备&#xff1a;1.Spring Bean生命周期机制&#xff08;IOC&#xff09;2.Spring依赖注入机制&#xff08;DI&#xff09;&#xff08;1&#xff09;Autowired注解标注属性set方法注入&#xff08;2&…

步进电机的神秘世界:斩波与细分算法的探索之旅

欢迎来到步进电机的奇妙领域&#xff01;今天&#xff0c;我们将一同揭开斩波和细分算法的神秘面纱&#xff0c;并探讨它们的编程实现。准备好踏上这趟充满惊喜的探索之旅了吗&#xff1f;让我们一起出发吧&#xff01; 首先&#xff0c;让我们了解一下步进电机斩波的原理。为了…

爬虫与DataFrame对象小小结合

import pandas as pd import requests from lxml import etree #数据请求 url"https://www.maigoo.com/brand/list_1715.html" headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari…

windows安装ElasticSearch踩坑记

ElasticSearch是一个开源的分布式搜索和分析引擎。它提供实时分布式搜索功能&#xff0c;可以索引和搜索大量的结构化和非结构化数据。Elasticsearch以其速度、可伸缩性和处理复杂查询的能力而闻名。它常用于日志分析、全文搜索、文档搜索和数据分析等领域。使用ElasticSearch的…