MATLAB入门小操作(数据类型)
这是一篇有助于快速上手MATLAB软件的文章(新手向)。(学习过其他的语言更容易看懂)
数据类型
这篇文章我想从MATLAB中的数据类型出发去列举一些经常使用的操作。MATLAB中的数据类型包括其他语言中常见的如:
- 数字
- 字符与字符串
- 结构体
还有一些特有的数据类型如: - 矩阵
- 元胞数组
下文将一一介绍这些数据类型的常见用法
字符与字符串
如果是为了建模过程,其中字符串的操作使用并不多,有些基本的用法:
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()生成均匀分布的伪随机整数
- randi(iMax)在(0,iMax]生成均匀分布的伪随机整数
- randi(iMax,m,n)在(0,iMax]生成m行n列型随机矩阵
- randi([iMin,iMax],m,n)在[iMin,iMax]生成随机矩阵
矩阵的运算
+-/是基本的运算,指的是线代意义上的矩阵乘法,A/B指的是AB的逆
.指的是矩阵与矩阵之间逐元素相乘
./同理
矩阵的下标
A=magic(5) % 五阶幻方阵
B=A(2,3) % 第二行第三列的元素(下标是从1开始算的)
C=A(3,:) % 第三行元素
D=A(:,4) % 第四列元素
幻方矩阵指的是每行每列以及对角线上元素之和都相同的矩阵
MATLAB入门小操作(数据类型)的更多相关文章
- Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...
- Matlab入门基础
matlab入门篇,一些基础用法记一下~ M语言是解释型语言 who:查看当前变量 whoes:查看当前变量及其维数.所占字节数等. clear: 清除所有变量 clear + 变量名 ...
- MATLAB入门教程
MATLAB入门教程 1.MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...
- Matlab常用小技巧及部分快捷键
Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是 ...
- (转)MATLAB入门教程
MATLAB入门教程 1.MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...
- 简述Python入门小知识
如今的Python开发工程师很受企业和朋友们的青睐,现在学习Python开发的小伙伴也很多,本篇文章就和大家探讨一下Python入门小知识都有哪些. 扣丁学堂简述Python入门小知识Python培训 ...
- 3)Linux程序设计入门--文件操作
)Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...
- angularJS入门小Demo【简单测试js代码的方法】
1.首先建立一个文件夹 demo, 2.在其中建立一个文本文档,改名为 demo-1.html, 3.把html中要引入的 js 文件拷贝到 demo目录下, 4.然后用 Notepadd++ 编辑刚 ...
- AngularJS - 入门小Demo
AngularJS四大特效 MVC模式.模块化设计.自动化双向数据绑定.依赖注入 如果了解了后端开发知识,想必对这些词汇不会陌生,AngularJS融合了后端开发的一些思想,虽然身为前端框架,但与jQ ...
- Hibernate的介绍及入门小案例
1.Hibernate的诞生 在以前使用传统的JDBC开发应用系统时,如果是小型应用系统,并不觉得有什么麻烦,但是对于大型应用系统的开发,使用JDBC就会显得力不从心,例如对几十,几百张包含几十个字段 ...
随机推荐
- 在树莓派上实现numpy的LSTM长短期记忆神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别
这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是LSTM识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: import torch imp ...
- 使用c#实现23种常见的设计模式
使用c#实现23种常见的设计模式 设计模式通常分为三个主要类别: 创建型模式 结构型模式 行为型模式. 这些模式是用于解决常见的对象导向设计问题的最佳实践. 以下是23种常见的设计模式并且提供c#代码 ...
- 如何在2023年开启React项目
在这里,我想给你一个新的React项目入门的简要概述.我想反思一下优点和缺点,反思一下作为一个开发者所需要的技术水平,反思一下作为一个React开发者,每个启动项目都能为你提供哪些功能.最后,你将了解 ...
- 9.3 Django框架
Django 是一个非常流行的 Python Web 开发框架,它是完整且强大的,适用于构建大型 Web 应用.在这一章节中,我们将详细介绍 Django 的基本概念.组件和用法.为了便于理解,我们将 ...
- Python生成指定大小的文件
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/400bd75c.html 你好,我是测试蔡坨坨. 在日常测试工作中,我们经常需要对上传的文件大小进行测试,例如:一个文件上传 ...
- 【HMS Core】华为帐号服务,获取Access Token报错{sub_error:20152,error_description:invalid code,error:1101}
[问题描述] 华为账号服务,接口获取Access Token报错:{sub_error:20152,error_description:invalid code,error:1101} [问题分析 ...
- 【了解LLM】——LoRA
本文地址:https://www.cnblogs.com/wanger-sjtu/p/17470327.html 论文链接:link code: github 什么是LoRA LoRA,英文全称Low ...
- 【python基础】文件-初识文件
文本文件可存储的数据量是非常多的.每当需要分析或修改存储在文件中的信息时,首先就是读取文件到内存中,为此可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 1.读取文件 1.1读取整个文件 ...
- 行行AI人才直播第8期:新加坡国立大学在读博士生张傲《多模态大语言模型(MLLM)的简介及高效训练》
随着 ChatGPT 在各领域展现出非凡能力,多模态大型语言模型(MLLM)近来也成为了研究的热点,它利用强大的大型语言模型(LLM)作为"大脑",可以执行各种多模态任务.更让人感 ...
- 前端关于table的设置
表格超长度后加... table{ table-layout:fixed; } td{ overflow:hidden; text-overflow:ellipsis; white-space:now ...
