首页 > 其他分享 >MATLAB入门小操作(数据类型)

MATLAB入门小操作(数据类型)

时间:2023-08-21 09:55:44浏览次数:28  
标签:元胞 string 数据类型 矩阵 MATLAB 字符串 入门

这是一篇有助于快速上手MATLAB软件的文章(新手向)。(学习过其他的语言更容易看懂)

数据类型

这篇文章我想从MATLAB中的数据类型出发去列举一些经常使用的操作。MATLAB中的数据类型包括其他语言中常见的如:

  1. 数字
  2. 字符与字符串
  3. 结构体
    还有一些特有的数据类型如:
  4. 矩阵
  5. 元胞数组
    下文将一一介绍这些数据类型的常见用法

字符与字符串

如果是为了建模过程,其中字符串的操作使用并不多,有些基本的用法:
char() % 强转为字符类型

num2str() % number to string,数字转为字符串类型

length(str) % 求解字符串长度

代码实例

% 创建字符串变量并输出
string='qweasdzxzcrtyfghvbn';
disp(string) % 输出字符串
string(3:5) % 输出第三至第五个字符,注意下标是从1开始,比如这里输出的是eas
string(end:-1:1) % 倒序输出字符串

此文中会通过引用块的形式介绍一些MATLAB中的基础用法

disp()函数是MATLAB中的输出函数,即显示变量的值,可以输出数字,字符串,矩阵等数据。(后文会有演示)
MATLAB中不希望在命令行输出的内容可以在语句末尾使用分号
如果命令行又多又杂可以直接输入clc命令清除

% 现假设一个字符串中有数字字符和字母,需要将数字字符提取出来并累加求和
string = 'dawiudg42341ase89baiud2aiudsb319dabi'
str_length=length(string);
sum=0;
for i=1:str_length
    if string(i)>='0' & string(i)<='9'
        num_str = string(i);
        sum=sum+str2num(num_str);
    end
end
disp(sum)

基本的代码框架和其他的语言是类似的
for,语句的形式是i=1:number,for,while,if语句的最后需要使用end来说明次循环(分支)到此结束。

字符串的操作方法有很多,在这里就不全部列举了,又需要的时候可以通过MATLAB中的帮助文档
图

结构体

MATLAB中的结构体类似于python中的字典,简单地说MATLAB中结构体是以不同名字的字段作为存储容器。如:
books=struct('name',{{'qwe','asd'}},'price',[30,40])

需要注意的是这里的name中数量和price可以不相等
就会输出一下内容:
输出内容
那么怎么提取结构体中的信息呢

books=struct('name',{{'qwe','asd'}},'price',[30,40])
books.name{1} % 提取name中的第一个,即qwe,以字符串形式输出

这里字段中的{}和[]都是代表什么呢,后文会解释

元胞数组

元胞数组支持将类型不同的相关数据统一放到一个单一的变量中
下面用代码演示如何使用
A=cell(1,6)
这时就创建了一个1行列的元胞数组,示意图:
( A{1}, A{2}, A{3}, A{4}, A{5}, A{6} )
每一个元胞都可以是任意类型的数据,元胞之间可以不相同

A=cell(1,6) % 一行六列的空元胞数组(注意下标是从1开始的)
A{1}=eye(5) % 第一个元胞是五阶的单位矩阵
A{2}='dawdawdwa' % 第二个元胞是字符串

前面的结构体提取中,也可以使用小括号books.name(1)取出的就是cell形式

矩阵

矩阵的可以说是MATLAB中最重要的数据类型了,下面依然是介绍一些基本用法,包括创建转置求逆等等
A=[1 2 3;4 5 6;7 8 9]

B=A' % 转置运算

C=A(:) % 将矩阵的列排成同一列

D=inv(A) % 求逆矩阵

A*D % 矩阵相乘

E=zeros(10,5,3) % 十行五列三维元素全为零的矩阵

E(:,:,1)=rand(10,5)

补充一些关于随机数的知识
rand()生成均匀分布的伪随机数,分布在(0,1)之间
rand(m,n)生成m行n列的均匀分布的伪随机数
rand(RandStream,m,n)用指定的随机种子生成伪随机数
rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'
randn()生成标准正态分布的伪随机数(均值为0.方差为1)
randi()生成均匀分布的伪随机整数

  1. randi(iMax)在(0,iMax]生成均匀分布的伪随机整数
  2. randi(iMax,m,n)在(0,iMax]生成m行n列型随机矩阵
  3. randi([iMin,iMax],m,n)在[iMin,iMax]生成随机矩阵

矩阵的运算

+-/是基本的运算,指的是线代意义上的矩阵乘法,A/B指的是AB的逆
.
指的是矩阵与矩阵之间逐元素相乘
./同理

矩阵的下标

A=magic(5) % 五阶幻方阵
B=A(2,3) % 第二行第三列的元素(下标是从1开始算的)
C=A(3,:) % 第三行元素
D=A(:,4) % 第四列元素

幻方矩阵指的是每行每列以及对角线上元素之和都相同的矩阵

标签:元胞,string,数据类型,矩阵,MATLAB,字符串,入门
From: https://www.cnblogs.com/hansumsomemer/p/17645207.html

相关文章

  • 2.1 入门实践-一张普通报表
    一、普通报表1.概述1.1报表设计流程图1.2报表设计案例目标这张报表由三部分构成:参数面板:通过下拉框控件选择地区,查询出对应地区的数据。表格:表格统计该地区下各销售员每个产品的销量。柱形图:柱形图将表格中的数据以图表的形式进行展示。2.制作步骤2.1新建......
  • CGAL入门——凸壳算法
    一、凸壳算法凸壳是能包含点集合的最小凸多边形,即凸壳是点集合的一个子集,将这个子集的点连接起来可以包含点集中所有的点。 二、数组中点的凸壳#include<iostream>#include<CGAL/Exact_predicates_inexact_constructions_kernel.h>#include<CGAL/convex_hull_2.h>......
  • 【人工智能】机器学习入门之监督学习(一)有监督学习
    机器学习入门之监督学习(一)有监督学习简介监督学习算法是常见算法之一,主要分为有监督学习和无监督学习。本文主要记录了有监督学习中的分类算法和回归算法,其中回归算法是最主要内容。本笔记对应视频:阿里云开发者社区学习中心-人工智能学习路线-阶段1:机器学习概览及常见算法对应......
  • 【人工智能】深度学习框架值TF入门-模型保存与加载
    资料:https://tensorflow.google.cn/tutorials/keras/save_and_load#选项Keras的方式Keras版本模型保存与加载函数保存模型权重:model.save_weights保存HDF5文件:model.save保存pb文件:tf.saved_modeltf.saved_model和model.save的区别在于,tf.saved_model格式的模型可以直接......
  • Jmeter 接口测试工具入门
    1)Jmeter介绍JMeter是一款JAVA桌面应用程序,常常被用来做接口测试、负载测试等等JMeter是一款开源测试工具:开源免费软件,不需要任何使用费用小巧绿色,相比LoadRunner的庞大,它非常小巧并且不需要安装(需要安装JDK)功能强大,设计之初只是一个简单的性能测试工具,经过无数次更......
  • Blob 数据类型前端如何操作
    Blob(BinaryLargeObject)是一种二进制数据类型,通常表示二进制文件、图片、音频或视频等媒体资源。Blob数据类型通常用于数据库中存储二进制数据,也可以用于在前端(如浏览器)中传输大型二进制数据、文件上传、浏览器剪切板数据等  Blob数据类型相对于字符串和数组而言,更适合处......
  • transformer小白入门
    transformer库是huggingface发布的1个框架,非常好用,很多外行看起来高大上的问题,用它都可以轻松解决,先来看1个小例子: 一、情感分析fromtransformersimportpipelineclassifier=pipeline('sentiment-analysis')classifier('youarebeautiful')这简单的三行代码,就能分析......
  • 软件测试|测试平台开发-Flask 入门:Flask HTTP请求详解
    简介上一篇文章我们介绍了flask的基本使用,编写了flask的第一个脚本。在本文中,我们将详细介绍如何使用Flask进行HTTP请求。我们将学习如何创建Flask应用程序,并通过不同的HTTP方法(GET、POST、PUT、DELETE等)发送请求。app.route()要使用不同的http方法发送请求,我们要先了解flask是如何......
  • c++基础入门
    1.安装g++编译器是编译C++代码使用的编译器,不要使用gcc了。在用户目录中单独创建一个文件夹存放下载后的3个安装文件,然后进入到目录中执行下面命令cd文件夹sudodpkg-i*.deb本地安装sudoapt-getinstallg++在线安装2.C++的语言特点及优势cwithclass(类)cplusplus大型......
  • Express - 入门
    创建Express应用可使用应用程序生成器工具(express-generator)快速创建应用程序框架。npminstall-gexpress-generator然后使用express命令就可以创建express应用了。express--view=pugmyapp使用这个命令创建一个myapp应用并将视图引擎将设置为pug。创建好应用后进......