问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB中字符串、字符、单元数组和数字格式互相转换详解

创作时间:
作者:
@小白创作中心

MATLAB中字符串、字符、单元数组和数字格式互相转换详解

引用
CSDN
1.
https://blog.csdn.net/wokaowokaowokao12345/article/details/108595246

在MATLAB编程中,字符串、字符、单元数组和数字之间的格式转换是一个常见的需求。本文将详细介绍这些转换方法,并通过对比展示不同函数的优劣,帮助读者更好地掌握MATLAB编程技巧。

简介

关于如何进行字符串、字符、单元数组和数字格式互相转换的例子很多,但是都很单一,有时候使用的时候需要查找很久才可以解决问题。这里就对这几种方法进行一个汇总。
之所以会涉及使用单元数组(cell),是因为在处理数据时,有时需要将字符串和数字存储在同一“矩阵”中,这时候需要使用单元数组进行存储。在数据处理时又需要进行单元数组转矩阵,因此掌握这些转换方法可以使得程序更加简洁高效。

使用到的语法

cell2mat   % 将单元数组转换为矩阵的字符型 
str2num    % 将字符型矩阵转换为双精度型 
str2double %推荐使用该函数而不是str2num
cellstr    % 将字符型矩阵转换为单元数组 
num2str    % 将双精度型转换为字符型 
num2cell   % 将双精度型直接转换为单元数组

num2str

官方文档:https://ww2.mathworks.cn/help/matlab/ref/num2str.html
点评,该函数对矩阵,以行为单位进行转换为字符型矩阵。

cellstr

官方文档:https://ww2.mathworks.cn/help/matlab/ref/cellstr.html?s\_tid=srchtitle
将字符串转换为字符向量单元数组。

用法:

seasons = ['Seasons'; cellstr(num2str(seasons))]

str2double

推荐使用str2double而不是str2num,是因为当单元数组中存储的字符串不是等大小时,str2num将会出错。
例如:

cellstr({'12', '123', '-9999'})

结果:

  1×3 cell 数组

    '12'    '123'    '-9999'

str2num效果:

str2num(cellstr({'12', '123', '-9999'}))
错误使用 str2num (line 31)
需要字符矢量或数组输入。

str2double效果:

str2double(cellstr({'12', '123', '-9999'}))

ans =

          12         123       -9999

str2double对于多维单元数组也可以直接转换为数字矩阵。

    aot  = str2num(cell2mat(data(:,7)));
    aot  = str2double(data(:,7));
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号