MATLAB 使用教程 —— 常用函数

ops/2024/11/16 22:44:25/

    • 字符串
      • strmatch 函数:字符串匹配
    • 存在性
      • exist 函数:检查是否存在
      • isfield 函数:检查结构体中是否存在特定字段
    • 文件相关
      • fileparts 函数:分解文件路径
      • fullfile 函数:构建完整文件路径

字符串

strmatch 函数:字符串匹配

strmatch 是一个用于匹配字符串的函数,它用于查找一个字符串是否与目标字符串完全或部分匹配。strmatch 是区分大小写的。

该函数会返回匹配字符串的位置或与目标字符串匹配的索引,通常用于字符串匹配的情况。

matlab">index = strmatch(str, strArray)
  • str:要匹配的目标字符串,可以是一个字符串(字符向量)或字符串数组。
  • strArray:字符串数组或一个字符串的单元格数组,包含多个字符串,strmatch 会检查每个字符串与目标字符串 str 的匹配情况。
  • index:返回一个索引或匹配的位置。如果有多个匹配项,返回这些匹配项的位置。如果没有匹配项,则返回空数组。返回的 index 是 strArray 中与 str 匹配的字符串的索引。

用法一:查找匹配字符串的位置

matlab">strArray = {'apple', 'banana', 'cherry', 'pineapple'};
index = strmatch('apple', strArray);
disp(index);  % 1 4

strmatch 找到了两个匹配的 “apple”,一个在数组的第 1 位,另一个在第 4 位。

用法二:检查字符串的某一部分字符
检查字符串 date 的前四个字符是否是 “2024”。如果是,则将变量 year 设置为 2024。

matlab">date = '20241111';
if(strmatch(date(1:4),'2024'))year = 2024;
end  

存在性

exist 函数:检查是否存在

exist 是一个用于检查变量、函数、文件或其他对象是否存在的函数。它可以返回不同类型对象的存在性信息。

exist 的返回值有助于判断对象的类型和状态,通常与 if 语句结合使用,以确保代码在运行时能正确地处理缺失的文件或变量。

exist 函数的基本语法如下:

matlab">status = exist(name)
status = exist(name, 'type')
  • name:要检查的对象的名称,通常是字符串或字符向量。它可以是变量、函数、文件、类、目录等的名称。
  • ‘type’ (可选):该参数指定要检查的对象类型。‘var’:变量,‘builtin’:内建函数,‘file’:文件,‘dir’:文件夹,‘class’:类。

返回的数字取决于 name 和 type 的组合:

  • 0:对象不存在。
  • 1:如果是变量,表示变量存在。

用法一:检查文件的存在性
在处理文件时,通常会使用 exist 来检查文件是否存在。例如,在读取数据文件之前:

matlab">filename = 'data.txt';
if exist(filename, 'file') == 2data = load(filename);
elsedisp('File does not exist!');
end

用法二:检查变量的存在性
在运行代码时,可以使用 exist 来确认变量是否已定义:

matlab">if exist('myVar', 'var') ~= 1  % 如果返回值不等于 1disp('Variable does not exist');
elsedisp('Variable exists');
end

用法三:检查变量是否存在,如果不存在或为空,赋默认值

matlab">if(~exist('res') | isempty(res))res = 1.5;
end

isfield 函数:检查结构体中是否存在特定字段

isfield 是 MATLAB 中用于检测某个结构体中是否存在特定字段的函数。

其基本语法如下:

matlab">tf = isfield(S, 'fieldname')
  • S:要检查的结构体。
  • ‘fieldname’:需要检查是否存在的字段名称(字符串形式)。
  • tf:返回一个布尔值,如果 fieldname 是结构体 S 中的字段,则返回 true;否则返回 false。
matlab">S.name = 'John';
S.age = 30;% 检查是否存在 'name' 字段
isNameField = isfield(S, 'name')  % 返回 true% 检查是否存在 'gender' 字段
isGenderField = isfield(S, 'gender')  % 返回 false

用法一:检查结构体中是否有某个字段,以便赋值

matlab">if(isfield(objs,'data'))data  = objs.data;
elsedata = [];
end

文件相关

fileparts 函数:分解文件路径

下面的这行代码通过 mfilename('fullpath') 获取当前脚本的完整路径,并使用 fileparts 函数提取文件的路径部分(即 this_dir)。this_dir 存储了当前脚本所在的文件夹路径,即当前脚本的父目录

matlab">[this_dir, ~, ~] = fileparts(mfilename('fullpath'));

fileparts 是 MATLAB 中用于分解文件路径的函数,它将一个完整的文件路径拆解成不同的部分,通常返回文件所在的目录路径、文件名和扩展名。语法如下:

matlab">[folder, name, ext] = fileparts(filepath)
  • filepath:一个字符串或字符数组,表示完整的文件路径,包含文件所在的文件夹、文件名和扩展名。这个路径可以是绝对路径或相对路径。
  • folder:返回文件路径的目录部分,即文件所在的文件夹的路径。如果 filepath 是文件名,则返回当前工作目录。
  • name:返回文件的名称,不包括扩展名。
  • ext:返回文件的扩展名(以点 . 开头),如果文件没有扩展名,则返回空字符串。

具体例子如,

matlab">filepath = 'C:\Users\admin\Documents\myfile.txt';
[folder, name, ext] = fileparts(filepath);
  • folder = ‘C:\Users\admin\Documents’
  • name = ‘myfile’
  • ext = ‘.txt’

fullfile 函数:构建完整文件路径

与 fileparts 相对的是 fullfile 函数,用于将上面三部分构建成完整路径

fileparts 可以用于从路径中提取文件夹和文件名部分,然后通过 fullfile 函数重新构建路径。

matlab">[folder, name, ext] = fileparts('C:\Users\admin\Documents\myfile.txt');
newpath = fullfile(folder, [name, '_new', ext]);
% 这会生成 C:\Users\admin\Documents\myfile_new.txt

http://www.ppmy.cn/ops/134257.html

相关文章

Java之JDBC,Maven,MYBatis

前言 就是用来操作数据库的 1.JDBC快速入门 注意在使用前一定要导入jar包 在模块那里新建目录,新建lib,粘贴复制jar包,我这个jar设置的是模块有效 package test1017;import java.sql.Connection; import java.sql.DriverManager; import…

前端(3)——快速入门JaveScript

参考: 罗大富 JavaScript 教程 | 菜鸟教程 JavaScript 教程 1. JaveScript JavaScript 简称 JS JavaScript 是一种轻量级、解释型、面向对象的脚本语言。它主要被设计用于在网页上实现动态效果,增加用户与网页的交互性。作为一种客户端脚本语言&#…

Flume和kafka的整合

1、Kafka作为Source 【数据进入到kafka中,抽取出来】 在flume的conf文件夹下,有一个flumeconf 文件夹:这个文件夹是自己创建的 创建一个flume脚本文件: kafka-memory-logger.conf Flume 1.9用户手册中文版 — 可能是目前翻译最完…

STM32 如何通过ESP8266通信

​ 一、STM32 与 ESP8266 简介​ (一)STM32 简介​ 是一款高性能、低功耗的微控制器,广泛应用于各种嵌入式系统中。它具有丰富的外设资源和强大的处理能力,能够满足不同应用场景的需求。在与 ESP8266 通信中,STM32 …

【C++课程学习】:二叉搜索树

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 二叉树搜索树的概念: 节点的结构: ⚽️结构: ⚽️ 构造函数&…

Rust 整数

表1 整数类型 大小(位)有符号整数无符号整数8i8u816i16u1632i32u3264i64u64128i128u128机器字isizeusize 表2 整数字面量 序号说明案例1可以在整数任意位置添加下划线_1234_5678、1_2_3_4_5_6_7_8、12_345_678 都合法的整数,都表示数12345…

Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)

1.Linux的背景介绍 Linux 操作系统的发展历程充满了激情与创新喵~🎀 萌芽期 (1983 - 1991):Linux 的历史可追溯到 1983 年,理查德斯托曼 (Richard Stallman) 发起 GNU 计划,目标是创建一个自由软件操作系统。1987 年发…

Prometheus面试内容整理-Metrics 类型

在 Prometheus 中,指标(Metrics)是核心数据单位,用于描述系统的各种状态和性能指标。Prometheus 将这些指标分为四种主要类型,每种类型适用于不同的监控场景。理解这四种指标类型有助于我们准确采集、分析和理解监控数据。 Counter(计数器) 1. 概念: Counter 是一种只…