在 Matlab 中读取逗号分隔的字符串(不是文本文件)
Reading a comma-separated string (not text file) in Matlab
我想在 Matlab 中读取一个字符串(不是外部文本文件),其中的数值用逗号分隔,例如
a = {'1,2,3'}
我想将它存储在一个向量中作为数字。有什么功能可以做到吗?我只找到用于处理文本文件的过程和函数。
谢谢
我想你在找 sscanf
A = sscanf(str,formatSpec)
reads data from str
, converts it according
to the format specified by formatSpec
, and returns the results in an
array. str
is either a character array or a string scalar.
我将使用 eval 函数来“评估”向量。如果那是结构,我还将使用 cell2mat 来获取 '1,2,3' 文本(这也可以通过其他方法来实现。
% Generate the variable "a" that contains the "vector"
a = {'1,2,3'};
% Generate the vector using the eval function
myVector = eval(['[' cell2mat(a) ']']);
让我知道此解决方案是否适合您
你可以试试str2num函数:
vec = str2num('1,2,3')
如果您必须使用单元格 a
,根据您的示例,它将是:vec=str2num(a{1})
文档中有一些安全警告需要考虑,因此请了解您的代码是如何使用的。
另一个更灵活的选项是textscan。它可以处理字符串和文件句柄。
这是一个例子:
cellResult = textscan('1,2,3', '%f','delimiter',',');
vec = cellResult{1};
我想在 Matlab 中读取一个字符串(不是外部文本文件),其中的数值用逗号分隔,例如
a = {'1,2,3'}
我想将它存储在一个向量中作为数字。有什么功能可以做到吗?我只找到用于处理文本文件的过程和函数。 谢谢
我想你在找 sscanf
A = sscanf(str,formatSpec)
reads data fromstr
, converts it according to the format specified byformatSpec
, and returns the results in an array.str
is either a character array or a string scalar.
我将使用 eval 函数来“评估”向量。如果那是结构,我还将使用 cell2mat 来获取 '1,2,3' 文本(这也可以通过其他方法来实现。
% Generate the variable "a" that contains the "vector"
a = {'1,2,3'};
% Generate the vector using the eval function
myVector = eval(['[' cell2mat(a) ']']);
让我知道此解决方案是否适合您
你可以试试str2num函数:
vec = str2num('1,2,3')
如果您必须使用单元格 a
,根据您的示例,它将是:vec=str2num(a{1})
文档中有一些安全警告需要考虑,因此请了解您的代码是如何使用的。
另一个更灵活的选项是textscan。它可以处理字符串和文件句柄。
这是一个例子:
cellResult = textscan('1,2,3', '%f','delimiter',',');
vec = cellResult{1};