String MATLAB中单元数组的字符串转换
我在字符串中执行一些操作。我在X中有一个字符串“AGCT”。我使用以下命令将其保存在单元格中String MATLAB中单元数组的字符串转换,string,matlab,cell-array,String,Matlab,Cell Array,我在字符串中执行一些操作。我在X中有一个字符串“AGCT”。我使用以下命令将其保存在单元格中 y(1,1)={x}; 现在它存储在一个单元格中。现在我想分别从字符串中提取每个字母。我想先从G中提取一个字母,依此类推。在这种情况下,单元格数组转换是必要的。因此,如何再次将单元格内容转换回字符串???您可以使用大括号({})从单元格中获取字符串: 您可以将索引运算符串在一起,直接从单元格数组中获取单个字符。例如: y{1}(2) ans = G 还要记住,char函数可以通过垂直连接字符串,
y(1,1)={x};
现在它存储在一个单元格中。现在我想分别从字符串中提取每个字母。我想先从G中提取一个字母,依此类推。在这种情况下,单元格数组转换是必要的。因此,如何再次将单元格内容转换回字符串???您可以使用大括号(
{}
)从单元格中获取字符串:
您可以将索引运算符串在一起,直接从单元格数组中获取单个字符。例如:
y{1}(2)
ans =
G
还要记住,
char
函数可以通过垂直连接字符串,同时根据需要填充空格,将字符串的单元格数组转换为二维字符数组:
S=char(C)
当C
是字符串的单元格数组时,将C
的每个元素放入字符数组S
的行中。使用CELLSTR
进行转换
通过这种方式,您可以将整个单元格数组转换为仅包含char(y)
的二维字符数组,但我认为您正在寻找一种方法,直接从单元格数组中为单个字符建立索引,如上所述
说到单元阵列转换,请看一下cellfun
,它可以用于对每个单元执行相同的操作。例如,如果您有一个单元格,例如y={'AGCT','CTGA'}
并且您想要每个单元格的第二个字符(包含GT
的字符数组),您可能会尝试执行y{:}(2)
,但这不起作用(第一个索引必须是标量)。解决办法是:
>> iBase = 2;
>> basei = cellfun(@(c)c(iBase),y)
basei =
GT
我称之为“访问存储在单元格中的内容”,而不是“将单元格转换为其他内容”。相关问题:
>> iBase = 2;
>> basei = cellfun(@(c)c(iBase),y)
basei =
GT