matlab里cell和char,字符串与字符数组_matlab cell2char-程序员宅基地

技术标签: MATLAB  

转载自:http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html


用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。

我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。

就像没有str2cell一样。

实现str2cell功能的函数是cellstr,将字符数组转换为cell型字符串数组

函数语法为c = cellstr(S)

它的作用是:将字符数组S中的每行分割成为cell细胞元组C的一个元素。并删除S的每行尾部空格

正好与char相反,char是将cell字符串数组转化为字符数组s=char(c)

 

 

很多人分不开字符数组和字符串什么区别。
>>str1='i love matlab' % 这是一个字符数组,也是一个字符串
str1 =
i love matlab

>>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格
str2 =
I
am
a
boy

由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组
>>char('i','love','matlab') % char函数会自动补充空格
ans =
i
love
matlab

>>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格
ans =
'i' 'love' 'matlab'

 


下面来看几个例子:

例1:创建一个字符串数组,记住补空格
>>S= ['abc '; 'defg'; 'hi  '] (下划线代表空格)
S =
abc
defg
hi

>>whos S
Name Size Bytes Class
   3x4  24    char array

例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :
>>c = cellstr(S)
c =
'abc'
'defg'
'hi'

>>whos c
Name Size Bytes Class
   3x1  294   cell array

例3:再使用char函数将cell字符串转换为字符数组
>>char(c)
ans =
abc
defg
hi

>> whos ans
Name Size Bytes Class Attributes
ans  3x4  24    char


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liyanzhong/article/details/46812909

智能推荐

定积分华里士公式推广_分部积分法与点火公式|第四十六回|高数(微积分)...-程序员宅基地

文章浏览阅读1.3w次,点赞17次,收藏34次。原标题:分部积分法与点火公式|第四十六回|高数(微积分)之前几次我们都在讲定积分计算的换元法,换元法对于定积分的计算确实很重要,也非常好用,因为定积分的结果是一个固定的数,所以相比于不定积分的换元法,我们最后不需要再换回去,这是多么的喜人!今天我们要来学习定积分计算的分部积分法,同样还是要记住那个五字真言“反对幂指三”,顺序靠后的和 dx 凑: 下面来看例题:例一 例二 例三 例四 例五 例六 一..._华里士公式推广到0-2π

openstack多个外部网络可能引发的网络问题_openstack路由接口down-程序员宅基地

文章浏览阅读2.9k次。在多个外部网络的环境中,如果_openstack路由接口down

ios NSString 截取汉字 数字 字母-程序员宅基地

文章浏览阅读232次。字符串截取:删除字符串中的字母+汉字NSString *string = @"你bushi1222真正90-快乐";NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z\u4e00-\u9fa5]+" options:0 error:NULL];resul..._ios 字符截取数字前面的字母怎么弄

RuoYi-Vue(SpringBoot+Vue+Socket.IO) 实现消息推送功能_vue消息推送功能实现-程序员宅基地

文章浏览阅读1.1k次,点赞10次,收藏14次。使用 ruoyi-vue 实现实时消息推送,可向指定在线用户推送_vue消息推送功能实现

C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏7次。本文介绍 头文件中最简单的原子类型: atomic_flag。atomic_flag 一种简单的原子布尔类型,只支持两种操作,test-and-set 和 clear。std::atomic_flag 构造函数如下:std::atomic_flag 只有默认构造函数,拷贝构造函数已被禁用,因此不能从其他的 std::atomic_flag 对象构造一个新的 std::atomic_flag 对象。如果在初始化时没有明确使用 ATOMIC_FLAG_INIT初始化,那么新创建的 std::atomic_fl_atomic_flag

在slicer中编写scripted模块_attempting to build the python scripted module 'su-程序员宅基地

文章浏览阅读306次。无摘要_attempting to build the python scripted module 'surfacetoolbox' when slicer_

随便推点

[Android]-[adb] user版本开启adb且去掉adb授权弹框_免adb授权修改-程序员宅基地

文章浏览阅读2.3k次。配置两个属性即可:1.使user版本可以adbdevice/mediatek/mt6739/device.mk ifeq ($(TARGET_BUILD_VARIANT),user)- PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.sys.usb.config=mtp+ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.sys.usb.config=mtp,adb2.去掉user版本授权usb弹框b_免adb授权修改

FreeBSD软件安装卸载工具:Ports和Packages详解-程序员宅基地

文章浏览阅读432次。FNP:FAQ - Ports and Packages v 1.52004.08.20 Table of Contents1、如何只抓取 tarball?2、如何仅做到解开 tarball的步骤?3、如何仅做到解开 tarball 并补上官方提供的 patch?4、如何安装一个新的 port?5、如何安装一个新的 port,并将打包(package)起来?6、如何打包一个 port,并将其所有相..._linux ports

终于,狂神说SSM及SpringBoot系列文章完更!!!_狂神博客-程序员宅基地

文章浏览阅读10w+次,点赞1.3k次,收藏8.5k次。经过了近一个月的时间,小狂神终于将SSM及SpringBoot视频对应文章更新完毕!!!记得文末喜欢走一波,码字不易,从公众号开通,就保持日更,何尝不是一种打卡呢?你们都坚持看了吗~如果..._狂神博客

HDFS的EditLog和FsImage作用详细解析,超详细!(含部分非原创图片,大部分原创总结)_hdfs editlog-程序员宅基地

文章浏览阅读698次,点赞7次,收藏10次。EditLog和FsImage的概念,以及与SecondaryNameNode的关系问题,以及EditLog和FsImage的重要性问题。_hdfs editlog

JS 系列之 事件—表单事件_js input event-程序员宅基地

文章浏览阅读2.6k次。今天跟大家分享一下JS系列之表单事件。1 表单事件的种类1.1 input 事件input事件当、、的值发生变化时触发。对于复选框()或单选框(),用户改变选项时,也会触发这个事件。另外,对于打开contenteditable属性的元素,只要值发生变化,也会触发input事件。input事件的一个特点,就是会连续触发,比如用户每按下一次按键,就会触发一次input事件。input事件对象..._js input event

菜单下拉条-程序员宅基地

文章浏览阅读82次。最近 ,用到了一些js的知识,稍微复习了下,还把之前写的js代码又复习了一遍,这里贴上来!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http:/..._菜单下拉条