Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 从字符串的单元格数组中读取特定字符_Matlab_Cell Array - Fatal编程技术网

Matlab 从字符串的单元格数组中读取特定字符

Matlab 从字符串的单元格数组中读取特定字符,matlab,cell-array,Matlab,Cell Array,我有一个维度为1x6的单元格数组,如下所示: A = {'25_2.mat','25_3.mat','25_4.mat','25_5.mat','25_6.mat','25_7.mat'}; 例如,我想从A{1}中读取'后面的数字,即2,用于我的示例使用,以及 它是如何工作的? 这段代码只是在出现'.之后查找字符1的索引。我们把它称为start\u index。然后查找比字符出现索引小一个数的字符。字符。我们把它称为end\u index。然后检索start\u index和end\u ind

我有一个维度为1x6的单元格数组,如下所示:

A = {'25_2.mat','25_3.mat','25_4.mat','25_5.mat','25_6.mat','25_7.mat'};
例如,我想从
A{1}
中读取
'
后面的数字,即
2
,用于我的示例

使用,以及

它是如何工作的?

这段代码只是在出现
'.
之后查找字符1的索引。我们把它称为
start\u index
。然后查找比
字符出现索引小一个数的字符。
字符。我们把它称为
end\u index
。然后检索
start\u index
end\u index
之间的所有字符。最后使用
str2double
将这些字符转换为数字

样本输入:

A = {'2545_23.mat','2_3.mat','250_4.mat','25_51.mat','25_6.mat','25_7.mat'};
>> out

out =

23     3     4    51     6     7
输出:

A = {'2545_23.mat','2_3.mat','250_4.mat','25_51.mat','25_6.mat','25_7.mat'};
>> out

out =

23     3     4    51     6     7

您可以使用大括号
{…}
访问单元格内容。一旦访问了内容,就可以像使用普通数组一样使用索引访问字符串的元素。例如:

test = {'25_2.mat', '25_3.mat', '25_4.mat', '25_5.mat', '25_6.mat', '25_7.mat'}
character = test{1}(4);

如果字符串长度是可变的,则可以使用
strfind
查找所需字符的索引。

假设数字是
符号后的非负整数:使用正则表达式,然后从字符串转换为数字:

numbers = cellfun(@(x) str2num(x{1}), regexp(A, '(?<=\_)\d+', 'match'));

numbers=cellfun(@(x)str2num(x{1}),regexp(A,'(?这对1到9很好,一旦我有了,例如25|10.mat | 25|11.mat…它返回:11,但我想要:10 11,所以最后我想要使用相同的函数:2 3 4 5 6 7 8 9 10 11等…@Devel为此编辑。你能检查一下吗?如果我只想要一个数字,请再问一个问题示例A(1)我的意思是我只想要“2”如何处理?@Devel
out(1)
应该做。在代码之后添加它。(您可以对任何单元格编号执行此操作)