我得到的格式Matlab的字符串转换为阵列
sLine =
{
[1,1] = 13-Jul-16,10.46,100.63,15.7,54.4,55656465
[1,2] = 12-Jul-16,10.47,100.64,15.7,54.4,55656465
[1,3] = 11-Jul-16,10.48,100.65,15.7,54.4,55656465
[1,4] = 10-Jul-16,10.49,100.66,15.7,54.4,55656465
}
的一个字符串数组,其中每个元素是一个字符串(“13-JUL-16,10.46,100.63,15.7,54.4,55656465”是串)。
我需要将其转换为6个载体,像
[a b c d e f] = ...
这样的方式,例如,对于第1列,这将是
a = [13-Jul-16;12-Jul-16;11-Jul-16;10-Jul-16]
我试图用cell2mat功能,但由于某些原因,它不会将字段分隔成矩阵元素,但它会将整个字符串连接成类似于
cell2mat(sLine)
ans =
13-Jul-16,10.46,100.63,15.7,54.4,5565646512-Jul-16,10.47,100.64,15.7,54.4,5565646511-Jul-16,10.48,100.65,15.7,54.4,5565646510-Jul-16,10.49,100.66,15.7,54.4,55656465
那么,我该如何解决这个问题?
更新
我有以下步骤
pFile = urlread('http://www.google.com/finance/historical?q=BVMF:PETR4&num=365&output=csv');
sLine = strsplit(pFile,'\n');
sLine(:,1)=[];
更新
感谢@Suever我现在能拿列日的SLINE矩阵。因此,代码的更新最新版本是
pFile = urlread('http://www.google.com/finance/historical?q=BVMF:PETR4&num=365&output=csv');
pFile=strtrim(pFile);
sLine = strsplit(pFile,'\n');
sLine(:,1)=[];
split_values = regexp(sLine, ',', 'split');
values = cat(1, split_values{:});
values(:,1)
你不能用'cell2mat'因为垫(数值矩阵)不能包含字符串。所以你需要使用单元阵列。你正在寻找的功能是'strsplit' – GameOfThrows
我试过strsplit之前,但没有成功。无论如何,我需要将该字符串转换为数值,以将每个数字列放入一个单独的向量中。 – Rego