在MATLAB

使用textscan()时,我使用textscan来从文件中读取数据忽略“字被读出的数据是:在MATLAB

"ABC",0.156 

"DEF",0.125

"GHI",0.101

我的代码 - data = textscan(fid, '%s %f', 'Delimiter', ',');

数据{1}来作为

'"ABC"' 

'"DEF"'

'"GHI"'

我想要的数据{1}作为 -

'ABC' 

'DEF'

'GHI'

最后,如何可以有答案为

data = 

'ABC' [0.156];

'DEF' [0.125];

'GHI' [0.101];

,而不是使用数据{1}和数据{2}。谢谢!

回答:

实际上有两种方法在读取字符串时忽略"字符。由于每TEXTSCAN文档,可以使用%q格式而不是%s格式:

data = textscan(fid,'%q %f','Delimiter',','); 

或者您可以使用%s格式读取的字符串和使用功能STRREP从data{1}删除"字符:

data{1} = strrep(data{1},'"',''); 

然后,您可以使用函数NUM2CELL将data{2}中的数值数组转换为单元格数组,以便您可以将它concatenate它用绳子在data{1}单元阵列:

>> data = [data{1} num2cell(data{2})]; 

data =

'ABC' [0.1560]

'DEF' [0.1250]

'GHI' [0.1010]

回答:

为了摆脱双引号的使用

data = textscan(fid, '%q %f', 'Delimiter', ','); 

其中%q确实神奇。

以上是 在MATLAB 的全部内容, 来源链接: utcz.com/qa/260522.html

回到顶部