0

それに応じて5000行を各列に沿って分割するforループを作成しました。

これらの行を含むセル配列の例: ここに画像の説明を入力してください

その写真から、最初の列から最後まで、その行のそれぞれの列に沿って各行を適宜分割したいと思います。

これは私が書いたコードです:

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.ます。これを解決する方法がわかりません。

お知らせ下さい。

4

1 に答える 1

2

私はこれをこのようにします:

%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};

ほとんどの場合、これを(文字列ではなく)数値に変換する必要があります。次のように、一度に1行ずつ実行できます。

numericRow = num2double(splitData{rowNumber});
于 2012-02-20T19:49:16.593 に答える