2016-07-22 17 views
0

私はいつも同じ問題、ベクトル、配列、セル配列を持っていると思います。この議論のおかげで、私は最初の問題を解決することができました。しかし、私はまだそれを暗号化するためには、データの各結果がベクトルでなければならないことが必要です。どのように各結果をベクトルとして表示できますか?

fid = fopen('file.txt', 'r'); 
alldata = textscan(fid, '%s'); 
tmp = reshape(alldata{1}, 16, []).'; 
tmp = arrayfun(@(x)strjoin(tmp(x,:)), 1:size(tmp, 1), 'uniformoutput', false) 
key=hex2dec(key_hex).' 
data= (cat(1, tmp{:})) 

for i= 1:rows(data) 
    Matrix(i, :)= hex_keys([data(i,1:15), data(i,16)]) 
    chiffrement (Matrix(i,:), key,1) 
endfor 

endfunction 

エラー:エラー:プレーンテキストは16要素のベクトル(セル配列ではありません)でなければなりません。 私を助けることができれば非常に感謝します。

file.txtを例えば含有する:

60 3D EB 10 15、CA 71 BE 2B 73 AE F0 85 7D 77 81 60 3D EB 10 15 71 BE 2B 73 AE F0 85 7D 77 81 60 3D CA eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81

実際、これは大きなプログラムで機能の成功です。このデータ結果の各行をベクトルに変換する方法が必要です。

data = 

60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 
60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 
60 3d eb 10 15 ca 71 be 2b 73 ae f0 85 7d 77 81 
+0

質問にデータを追加してください。小さなfile.txtのwoudは多くの助けを借ります – Finn

+0

私はあなたを助けるためのより多くの情報が必要なように私は感じる。 ley_hexと関数hex_keysとchiffrementを追加してください。どの機能でエラーが発生しましたか? – Finn

+0

編集した質問をご覧ください。 –

答えて

2

私は私の仮定、あなたが問題を複雑に超えていると思いますが、あなたが(つまり、あなたがhex2decを使用)数字にfile.txtにデータを変換するので、ちょうどそれを行うと、問題のうち、Arrayfunを残してみましょう:

fid = fopen('file.txt', 'r'); 
alldata = textscan(fid, '%s'); 
tmp = reshape(alldata{1}, 16, []).'; % here we still parse 16 hex for every row using your function call 
tmp = cellfun(@hex2dec,tmp,'un',0) % now we use cellfun to convert all your hex to numbers 
Matrix = cell2mat(tmp) 

Matrix = 

96 61 235 16 21 202 113 190 43 115 174 240 133 125 119 129 
96 61 235 16 21 202 113 190 43 115 174 240 133 125 119 129 
96 61 235 16 21 202 113 190 43 115 174 240 133 125 119 129 

whos Matrix 

Name  Size   Bytes Class  Attributes 

Matrix  3x16    384 double   

これで、forループを使用して任意の操作を行うことができます。これは通常のインデックス作成となります。

+0

ありがとうございます、それは動作します、 –

+0

あなたは歓迎です:D – GameOfThrows

関連する問題