如何从字符串中读取数据

时间:2013-02-23 16:55:14

标签: matlab

我有一个以下格式的字符串:

fileName.jpg,10,20,10,10,...,12,14,True

基本上,我有一个逗号分隔值的字符串。第一个值是一个字符串,然后它跟随一个包含100个值的数组,最后是另一个字符串为true或false。

有没有办法或直接将这些值读入3变量?两个字符串和一个数组? 值数组可能包含n\a值,我想将其视为-1或类似的值,或者使用单元格数组并为这些值设置空单元格?你能为我推荐一些这类问题吗?

2 个答案:

答案 0 :(得分:1)

您可以使用textscan

n = 100; % number of integers between filename and logical values

M = textscan(str, ['%s' repmat('%d',1, n) '%s'], 'delimiter', ',',...
    'TreatAsEmpty', 'n\a', 'EmptyValue', -1, 'CollectOutput', true);

结果M是一个单元格数组,第一个单元格中包含文件名,第二个单元格中包含100个整数值,以及包含最后一个单元格中逻辑值的字符串。

答案 1 :(得分:0)

您可以使用strsplit并从String中提取值并将它们存储在单独的变量中

代码示例:

a = strsplit("fileName.jpg,10,20,10,10,...,12,14,True",",")
fileName = a(1)
flag = a(end)
data = a(2:end-1)