我得到的格式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