にIは、各要素が文字列である(「13-07月16,10.46,100.63,15.7,54.4,55656465」である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
}
た形式の文字列配列を得文字列)。私は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
どうすればこの問題を解決できますか?
アップデートは私は今、列の日付を得ることができ@Sueverする手順
pFile = urlread('http://www.google.com/finance/historical?q=BVMF:PETR4&num=365&output=csv');
sLine = strsplit(pFile,'\n');
sLine(:,1)=[];
更新
おかげで、次のSLINE行列を得ました。だから、コードの最後に更新されたバージョンは、したがって、あなたがcell2mat
を使用するのではなく、いくつかの文字列操作を行う必要があります、
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