2016-07-21 9 views
2

私はたとえば、すべてのブロックのサイズは16です圏でのテキスト、 を分割する必要があります:私は非常になり16バイトのブロック単位でテキストを分割するにはどうすればよいですか?

60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 
1f 35 2c 07 3b 61 08 d7 2d 98 10 a3 09 14 df f4 
60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 
1f 35 2c 07 3b 61 08 d7 2d 98 10 a3 09 14 df f4 

テキスト:

60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 1f 35 2c 07 3b 61 08 d7 2d 98 10 a3 09 14 df f4 60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 1f 35 2c 07 3b 61 08 d7 2d 98 10 a3 09 14 df f4 

結果あなたが私を助けることができれば感謝します。

+0

を維持するためにstrjoinを使用することができますか?これはファイルですか?セル配列?多次元文字配列ですか? – Suever

+0

@Suever、それはファイルです。ありがとうございます。 –

+0

そして、出力をどのようにしたいですか?セル配列?多次元文字配列ですか? – Suever

答えて

2

freadを使用してこれを読み取ってから、データを再構成することができます。

fid = fopen('filename.txt', 'r'); 
alldata = fread(fid, '*char'); 
data = reshape(alldata, 3*16, []).'; 
fclose(fid) 

あなたは少しより堅牢な何かをしたい場合は、textscanを使用することができます。

fid = fopen('filename.txt', 'r'); 
alldata = textscan(fid, '%s'); 
data = cell2mat(reshape(alldata{1}, 32, [])).'; 
fclose(fid) 

スペースが重要な場合、あなたはあなたの中のテキストは何フォーマットスペース

tmp = reshape(alldata{1}, 16, []).'; 
tmp = arrayfun(@(x)strjoin(tmp(x,:)), 1:size(tmp, 1), 'uniformoutput', false); 
data = cat(1, tmp{:}) 
+0

ありがとう最後のソリューションは私に最高の結果を与える。 –

+0

お願いします。私はどのようにしてベクトルのデータ結果を得ることができますか?私は配列とベクトルの作成の違いをマエーできませんでしたか?前もって感謝します。 –

+0

@ user6594048 2D文字配列が必要ですか? – Suever

関連する問題