MATLAB的基础知识

matlab的基本小常识

        1. 在每行语句后面加上英文分号表示不在命令行窗口显示运行结果。

        a = 3;

        a = 5

        2. 多行注释快捷键,CTRL+R。

        3. 取消多行注释,CTRL+T。

        4. 清空工作区的所有变量使用clear。

        5. 清空命令行窗口的所有变量使用clc。 

        6. clc和clear一起使用,起到初始化的作用,防止之前的结果对新脚本文件(后缀名为.m的文件)产生干扰。

输入和输出函数

        输出函数disp()

        disp函数(display的缩写)是屏幕输出函数,类似c语言的printf函数。

        如果括号内的内容如果为字符串,单双引号不做区分,disp("太阳是我的指南针")。

        如果括号内的内容是向量(只有行或列)或者矩阵(既有行又有列),disp(变量名)。

        disp函数之后加不加分号都会输出结果。

向量和矩阵

        a = [1 2 3]

        a = [1,2,3]

%同一行的元素之间用逗号或空格分隔。

        a = [1;2;3]

%同一列的元素之间用分号分隔。

合并字符串的方法 

        1. strcat(str1, str2, ……, strn)

        2. ["str1" "str2"]  or ["str1", "str2"]

一个有用的字符串函数:num2str 将数字转换成字符串

c = 100

num2str(c)

disp(["c的取值为", num2str(c)])

or  disp(strcat("c的取值为", num2str(c)))

        输入函数input()

        一般我们会将输入的输、向量、矩阵或字符串等赋值给一个变量。

        A = input("请输入A:");

        B = input("请输入A:")

        % input函数加了分号,因此A变量不会在命令行窗口打印结果;而B变量就会打印结果。

求和函数sum

        1. 如果是向量(无论是列向量还是行向量),就直接求和。

        E = [1 2 3]

        sum(E)

        2. 如果是矩阵,需要根据行和列的方向来作区分。

        E = [1,2;3,4;5,6] 

        a = sum(E)  or  a = sum(E, 1)   %按列求和(得到一个行向量)。

        a = sum(E, 2)    %按行求和(得到一个列向量)。

        a = sum(sum(E))  or   a = sum(E(:))    %对整个矩阵求和。

        dim(维度)默认为1。

        dim = 1表示按照列。

        dim = 2表示按照行。

如何提取矩阵中的指定位置元素

E = [1,2,11;3,4,12;5,6,13;7,8,14;9,10,15]

1. 取指定行和列的一个元素

E(2,1)   %第二行第一列的元素

2. 取指定某一行的全部元素

E(2,:)   %输出第二行的全部元素(输出行向量)

3. 取指定某一列的全部元素

E(:,1)   %输出第一列的全部元素(输出列向量)

4. 取指定某几行的全部元素

E([1,2],:)   %只取第一行和第二行的全部元素

E(1:3,:)   %取第一行到第三行的全部元素

E(1:2:3,:)   %取第一行到第三行,从一开始每次递增两个单位,到三结束

%涉及到等差数列的语法 begin:d:end

E(2:end,:)   %取第二行到最后一行的全部元素

E(2:end-1,:)   %取第二行到倒数第二行的全部元素

5. 取全部元素(按列全部拼接成一列,最终输出一个列向量)

E(:)

size函数

        A = [1,2,3;4,5,6]

size(A)

%上放函数用来求矩阵A的大小,它返回一个行向量,第一个元素是矩阵的行数,第二个元素是矩阵的列数。

[r,c] = sizeof(A)

%将矩阵A的行数返回到第一个变量r中,将矩阵A的列数返回到第二个变量c中。

r = size(A,1)   %返回行数

c = size(A,2)   %返回列数

repmat函数

        A = [1,2,3;4,5,6]

B = repmat(A,m,n)

%将矩阵A复制m*n块,把A作为B的元素,B由m*n个A平铺而成

矩阵的运算 

        A = [1,2;3,4]

        B = [1,0;1,1]

%在矩阵的运算中," * "和" / "代表矩阵之间的乘法与除法。

        A*B        A/B

%逆矩阵 inv(A)

        A*inv(A) = 单位矩阵        %一个矩阵乘它的逆矩阵等于单位矩阵

        A/B = A*inv(B)        %A矩阵除以B矩阵等于A矩阵乘B的逆矩阵

%两个相同形状的矩阵对应元素之间的乘除法需要使用" .* "和" ./ "

        A.*B        A./B

%矩阵中每个元素同时乘或除以一个常数,可以用" * "、" / "也可以用" .* "、" ./ "。

%矩阵中每个元素同时乘方需要使用" .^ "

        A .^ 2 = A .* A

        A * A是矩阵乘法,不是乘方。

Matlab中求特征值和特征向量

% 在Matlab中,计算矩阵A的特征值和特征向量的函数是eig(A),其中最常用的两个用法:
A=[1 2 3;2 2 1;2 0 3]
E=eig(A);        %求矩阵A的全部特征值,构成向量E。

[V,D]=eig(A);        %求矩阵A的全部特征值,构成对角矩阵D,并求A的特征向量构成V的列向量。(V的每一列都是D中与之相同列的特征值的特征向量)

find函数的基本用法 

        find函数可以用来返回向量或矩阵中不为0的元素的位置索引。

        X = [1 0 4 -3 0 0 0 8 6]

向量:

        ind = find(X)   % 返回X向量中所有不为0元素的索引:1 3 4 8 9

        ind = find(X,2)   % 返回前两个不为0的位置索引:1 3

         X = [1 0 4;-3 0 0;0 8 6]

矩阵:

        因为在matlab中存储矩阵是一列一列存储的,所以返回的是一个列向量。

         ind = find(X)   % 返回X矩阵中所有不为0元素的索引:1 2 6 7 9(列向量)

        也可以分别返回行和列数

        [r,c] = find(X)   % 返回所有不为0的元素的行和列到r和c中

        [r,c] = find(X,1)   %只返回第一个不为0的元素

 矩阵与常数大小的判断运算

%共有三种运算符,分别是大于(>)、小于(<)和等于(==)。

X = [1 0 4;-3 0 0;0 8 6]

X > 0   %在矩阵中某个位置的元素如果满足判断条件就会在生成的新矩阵的原位置返回1,否则返回0,最终生成一个只有0和1的相同形状的矩阵。

 判断语句

%matlab中的判断语句,if所在行不需要冒号,语句的最后以end结尾,中间语句要缩进。

a = input("请输入考试成绩")

if a>=85

        disp("成绩优秀")

elseif a>=60

        disp("成绩合格")

else

        disp("成绩挂科")

end

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

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

相关文章

初试Ollama本地大模型

准备工作 机器配置&#xff1a; CPUi5-10400内存16GB硬盘SSD 480GB显卡GTX 1660 系统&#xff1a;Ubuntu 18.04 Server NVIDIA驱动安装 - 下载 驱动下载地址&#xff1a;https://www.nvidia.cn/geforce/drivers/ - 获取下载链接 GTX 1660驱动下载链接&#xff1a;https://…

怎么理解FPGA的查找表与CPLD的乘积项

怎么理解 fpga的查找表 与cpld的乘积项 FPGA&#xff08;现场可编程门阵列&#xff09;和CPLD&#xff08;复杂可编程逻辑器件&#xff09;是两种常见的数字逻辑器件&#xff0c;它们在内部架构和工作原理上有着一些显著的区别。理解FPGA的查找表&#xff08;LUT&#xff0c;L…

Git如何将一个分支上的修改转移到另一个分支

在我们使用git进行版本控制时&#xff0c;当代码写错分支&#xff0c;怎么将这些修改转移到正确的分支上去呢&#xff1f;这时&#xff0c;我们可以使用git stath命令来暂存我们的修改&#xff0c;然后再切换到其他分支 未commit&#xff08;提交&#xff09;操作时 1. 先将修…

在 Android 上实现语音命令识别:详细指南

在 Android 上实现语音命令识别:详细指南 语音命令识别在现代 Android 应用中变得越来越普遍。它允许用户通过自然语言与设备进行交互,从而提升用户体验。本文将详细介绍如何在 Android 上实现语音命令识别,包括基本实现、带有占位槽位的命令处理,以及相关的配置和调试步骤…

力扣SQL50 指定日期的产品价格 双重子查询 coalesce

Problem: 1164. 指定日期的产品价格 coalesce 的使用 简洁版 &#x1f468;‍&#x1f3eb; 参考题解 select distinct p1.product_id,coalesce((select p2.new_pricefrom Products p2where p2.product_id p1.product_id and p2.change_date < 2019-08-16order by p2.…

【github项目】Algorithms-for-Automated-Driving自动驾驶算法(1)

本文解决项目中“Basics of Image Formation”部分的问题&#xff0c;也就是实现从世界坐标向像素坐标的转换。 文件位置&#xff1a;Algorithms-for-Automated-Driving-master \code\exercises\lane_detection\camera_geometry.py 代码中写了详细注释。 import numpy as np…

黑马JavaWeb企业级开发(知识清单)03——HTML实现正文:排版(音视频、换行、段落)、布局标签(div、span)、盒子模型

文章目录 前言一、正文排版1. 视频标签: < video >2. 音频标签: < audio >3. 换行标签: < br >4. 段落标签 < p >5. vscode实现 二、布局1. 盒子模型2. 布局标签< div >和< span >3. VScode实现 三、源代码和运行结果总结 前言 本篇文章是…

uniapp bug解决:uniapp文件查找失败:‘uview-ui‘ at main.js:14

文章目录 报错内容解决方法main.js 文件中 uView 主 JS 库引入 uView 的全局 SCSS 主题文件内容修改引入 uView 基础样式内容修改配置 easycom 内容修改 报错内容 10:50:51.795 文件查找失败&#xff1a;uview-ui at main.js:14 10:59:39.570 正在差量编译... 10:59:43.213 文…

什么是etcd?及 etcd的核心特点

什么是etcd?及 etcd的核心特点 1、etcd简介2、etcd的核心特点1. 简单易用2. 安全可靠3. 性能卓越4. 分布式架构3、etcd的应用💖The Begin💖点点关注,收藏不迷路💖 1、etcd简介 etcd是一个由CoreOS团队发起的开源项目,它是一个高可用的分布式键值存储系统,使用Go语言…

git的一些使用技巧(git fetch 和 git pull的区别,git merge 和 git rebase的区别)

最近闲来无聊&#xff0c;虽然会使用git操作&#xff0c;但是 git fetch 和 git pull 的区别&#xff0c;git merge 和 git rebase的区别只是一知半解&#xff0c;稍微研究一下&#xff1b; git fetch 和 git pull 的区别 git fetch git fetch 是将远程仓库中的改动拉到本地…

ARM架构(三)——AMBA和总线②

本文参考 ARM文档“Introduction to AMBA AXI4 - Arm Developer” 手册可以在ARM官方文档中下载ARM.con&#xff0c;也可以访问我的百度网盘资源 提取码&#xff1a;1234 目录 1. AXI协议概述1.1 多主系统中的AXI1.2 AXI通道1.3 AXI的主要特点 2. 通道传输和事务&#xff08; …

基础IO(重定向与缓冲区)

一、重定向 1、stat() 与 read() 函数 &#xff08;1&#xff09;stat() 函数 path&#xff1a;文件路径 buf&#xff1a;输出型参数&#xff0c;用于返回文件的各种属性。 函数成功返回 0 &#xff0c;失败返回 -1 &#xff08;2&#xff09;read() 函数 fd&#xff1a;文…

使用minio cllient(mc)完成不同服务器的minio的数据迁移和mc基本操作

minio client 前言使用1.拉取minio client 镜像2.部署mc容器3.添加云存储服务器4.迁移数据1.全量迁移2.只迁移某个桶3.覆盖重名文件 5.其他操作1.列出所有alias、列出列出桶中的文件和目录1.1.列出所有alias1.2.列出桶中的文件和目录 2.创建桶、删除桶2.1.创建桶2.2.删除桶 3.删…

Android APK混淆处理方案分析

这里写目录标题 一、前言1.1 相关工具二、Apk 分析2.1 apk 解压文件2.2 apk 签名信息2.3 apk AndroidManifest.xml2.4 apk code三、Apk 处理3.1 添加垃圾文件3.2 AndroidManifest.xml 处理3.3 dex 混淆处理3.4 zipalign对齐3.5 apk 重新签名3.6 apk 安装测试四、总结一、前言 提…

顺序表和单链表的经典算法题

目录 前言 一、基础思想&#xff08;数组&#xff09; 1. 移除元素 2.删除有序元素的重复项 3.合并两个有序数组 二、单链表算法 1.移除链表元素 2.翻转链表 3.合并两个有序的链表 前言 Hello,小伙伴们&#xff0c;今天我们来做一个往期知识的回顾&#xff0c;今天我将…

C++ 设计模式(五)——状态模式

状态模式 序言理解源码 序言 设计模式只是一个抽象的设计模式方法&#xff0c;并不是一个固定使用的搭配&#xff0c;就算是普通switch语句&#xff0c;Map&#xff0c;乃至状态机都是状态模式的其中一种实现方法 状态模式看起来好像和策略模式差不多&#xff0c;主要是其的侧…

centos7 yum更换国内源【超简洁步骤】

执行以下命令 cd /etc/yum.repos.d mkdir backup mv CentOS-* backup/ cd .. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache fast接下来更精彩&#xff0c;请勿走开(以下是私事&#xff0c;不喜欢别往…

【vluhub】log4j注入漏洞 CVE-2021-44228

LOG4介绍 是一个用Java编写的可靠&#xff0c;快速和灵活的日志框架&#xff08;API&#xff09;&#xff0c;它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境&#xff1a;192.168.3.180 kail环境&#xff1a;192.168.203.12【NAT…

深入理解 OSPF NSSA “P-bit”

** 注&#xff1a;机翻&#xff0c;未校对。** OSPF NSSA P-bit Explained OSPF Forward Address Filtering OSPF 转发地址过滤 In this lesson we’ll take a closer look at the OSPF NSSA “P-bit”. When we redistribute something into an OSPF NSSA area then these …

数据开发/数仓工程师上手指南(一)数仓概念总览

前言 笔者毕业最开始从事的就是大数据开发和数据仓库建设工作&#xff0c;途中曾担任过人工智能工程师和计算机视觉工程师&#xff0c;没想到最后兜兜转转还是回到了最原本的工作数据开发工程师。但很少有写关于本职工作的技术内容输出。 之前笔者撰文内容大部分都是关于算法…