質問

私は、それぞれの列に沿って5000行を分割するためのループを書いています。

それらの行を含むセルアレイの例:enter image description here

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

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

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});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top