Matlabで複数の行で文字列分割を行う
質問
私は、それぞれの列に沿って5000行を分割するためのループを書いています。
それらの行を含むセルアレイの例:
その写真から、それに応じて各行を最初の列から最後まで開始するその行のそれぞれの列に沿って分割したいと思います。
これは私が書いたコードです:
for i = pdbindex(:,1)
clean_pdb = regexprep(pdbindex, ':', ' '); % removes the colon (:) from the array and replaces it with a whitespace
pdb2char = char(clean_pdb); % converts the cell array into a character array
pdb2split = strsplit(pdb2char, ' '); % does a split based on the character array followed by a delimiter, which is the white space
end
私はコロン(:)を空白に置き換えるために正規表現を使用しました。しかし、それは私にエラーを述べるエラーを投げかけています Input strings must have one row.
. 。これを解決する方法がわかりません。
お知らせ下さい。
解決
私はこのようにこれをします:
%Some sample data
data = {'1 : 2 : 3 :4: 5: 6';'7 :8 : 9: 10 :11 :12'};
区切り文字に基づいたすべての行を分割します(区切り文字は、ホワイトスペースと「:」の組み合わせです)
splitData = regexp(data,'[\s\:]*','split')
これで、分割データを次のように読み取ることができます
example = splitData{row}{column};
ほとんどの場合、これを数字(文字列ではなく)に変換することをお勧めします。このように一度にこれを行うことができます:
numericRow = num2double(splitData{rowNumber});
所属していません StackOverflow