2016-07-22 5 views
0

Ich denke, dass ich immer das gleiche Problem habe, Vektor, Array und Zell-Array, Dank dieser Diskussion, How can I split a Text in blocks of 16 bytes every one? konnte ich mein erstes Problem lösen. Allerdings brauche ich immer noch, dass jedes Ergebnis in Daten e-Vektor sein muss, um es zu verschlüsseln.Wie könnte ich jedes Ergebnis als Vektor haben?

Mein Fehler ist: Fehler: Plaintext muss ein Vektor (kein Zellenarray) mit 16 Elementen sein. Ich wäre sehr dankbar, wenn Sie mir helfen könnten.

Die datei.txt enthält zum Beispiel:

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

Tatsächlich ist es ein großes Programm und eine Folge von Funktion, Alles, was ich brauche, ist, wie man jede Zeile in diesem Datenergebnis in einen Vektor umwandelt.

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

könnten Sie bitte einige Daten zu der Frage hinzufügen? eine kleine file.txt would help a lot – Finn

+0

ich fühle mich wie wir würden mehr informationen brauchen um dir zu helfen. fügen Sie bitte ley_hex und die Funktion hex_keys und chiffrement hinzu. In welcher Funktion ist der Fehler aufgetreten? – Finn

+0

Bitte, sehen Sie sich die bearbeitete Frage an. –

Antwort

2

Ich glaube, Sie sind über das Problem zu komplizieren, meine Annahmen ist, dass Sie Ihre Daten in file.txt in Zahlen umwandeln möchten (dh Sie hex2dec verwendet wird), so lassen Sie uns nur das tun und lassen Arrayfun aus dem Problem:

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   

Jetzt können Sie Ihre for-Schleife zu tun, was Sie wollen, wird es regelmäßige Indexierung.

+0

Vielen Dank, es funktioniert, –

+0

Sie sind herzlich willkommen: D – GameOfThrows

Verwandte Themen