Ich habe einen Vektor, zum Beispiel V = [ 1, 2, 3, 4 ]
. Gibt es eine Möglichkeit, dies zu den Buchstaben zu ändern, [ a,b,c,d ]
?Nummer zu Buchstabe tauschen in MATLAB
Antwort
So etwas wie
C = char(V+ones(size(V)).*(97-1))
funktionieren sollte (97 ist der ASCII-Code für 'a', und Sie möchten 1 zur Karte zu 'a' es sieht so aus).
Verwenden der CHAR-Funktion, die eine Anzahl Umdrehungen (dh ASCII-Code) in ein Zeichen:
charString = char(V+96);
EDIT: rückwärts zu gehen (Mapping 'a' 1 ist, 'b' 2 ist, etc.), verwenden Sie die DOUBLE Funktion den Charakter zurück zu seiner ASCII-Codenummer neu zu fassen:
V = double(charString)-96;
danke das hat perfekt funktioniert –
Könnten Sie mir sagen, wie ich das Gegenteil machen soll? –
Es gibt zwei einfache Möglichkeiten, dies zu tun. Ein Weg ist ein einfacher Index.
C = 'abcdefghijklmnopqrstuvwxyz';
V = [8 5 12 12 15 23 15 18 12 4];
C(V)
ans =
helloworld
Natürlich wird char auch das tun. Die char-Antwort ist besser, weil Sie nicht eine Liste von Buchstaben speichern müssen, in die indexiert werden soll.
char('a' + V - 1)
ans =
helloworld
Dies ist am besten da, wenn Sie hinzufügen, ‚a‘ zu etwas, wandelt es ‚a‘ in seiner ascii Darstellung im Fluge. + 'a' ergibt 97, die ascii-Form von 'a'.
Eine nette Sache ist es funktioniert auch für 'A', also, wenn Sie Kappen wollten, fügen Sie einfach 'A' stattdessen hinzu.
char('A' + V - 1)
ans =
HELLOWORLD
Sie weitere Informationen über die Arbeit mit Strings in MATLAB von diesen Befehlen finden:
help strings
doc strings
char() ist auch in dem Fall vorzuziehen, dass sich die Reihenfolge der Buchstaben irgendwann in der Zukunft ändert ... –
Mit 'a' direkt anstelle von ASCII-Codes sein könnte etwas besser lesbar
charString = char(V-1+'a');
Das Großbuchstabe wird dann mit
charString = char(V-1+'A');
erhalten
blast! Ich dachte, das würde funktionieren, aber ich hatte keine Kopie von Matlab zur Hand, um sicherzugehen. gute Show :) –
Wow, ich habe so etwas für immer gesucht. Jetzt, da ich es sehe, fühle ich mich dumm, weil ich es nicht früher herausgefunden habe. Danke und gut gemacht. Nun, wenn nur Excel nicht terribad wäre, würde ich diesen hässlichen (aber brillanten) Hack nicht brauchen! –
- 1. Suche Buchstabe für Buchstabe in elastischer Suche
- 2. Bootstrap Karussell machen Text von Buchstabe zu Buchstabe
- 3. Ist es schneller zu finden, ob ein Buchstabe ein Buchstabe ist, oder Parse und Integer?
- 4. Verketten Sie zwei Zeichenkette Buchstabe für Buchstabe in Mips
- 5. Tauschen Wörter in JavaScript
- 6. Farbe ändern Buchstabe für Buchstabe in einem Wort auf Hover
- 7. Nicht-englischer Buchstabe in BufferedWriter
- 8. Tauschen von Zeilen in JQuery
- 9. Wie float Nummer mit While-Schleife in MATLAB Runde?
- 10. Wie Array an eine Nummer für if-Anweisung in Matlab
- 11. Erster Buchstabe nach Großbuchstabe
- 12. Lucene kein Buchstabe Regex
- 13. Dynamisch tauschen UserControl
- 14. bester Algorithmus zum Tauschen?
- 15. 2D-Array Bilder tauschen
- 16. effiziente Art und Weise Bytes in Python zu tauschen
- 17. Einfachste Möglichkeit, Vorkommen von zwei Strings in Vim zu tauschen?
- 18. Erster Buchstabe allein in Großschreibung Oracle SQL
- 19. Regex: Fügen Sie Leerzeichen hinzu, wenn Buchstabe neben einer Nummer ist
- 20. Tools zum Tauschen von Gleichungen in Code
- 21. Tauschen Sie zwei Bits in gegebener Ganzzahl
- 22. Tauschen Sie zwei Buchstaben in einer Zeichenfolge
- 23. Tauschen von ms-sql-Tabellen
- 24. JavaScript toUpperCase nur erster Buchstabe
- 25. Wie kann man feststellen, ob ein Buchstabe ein Buchstabe in Java ist?
- 26. Ng-show DOM Opazitätsanimation tauschen
- 27. Tauschen Cassandra VNodes die Leistung?
- 28. Wie zu defuzztifizieren in Matlab
- 29. Wie varchar zu Nummer
- 30. Java - String zu Nummer
In all diesen Kommentaren und Lösungen (nicht nur auf Ihrem, Matt), würde ich wahrscheinlich den Code schreiben, so dass 'a' im Code erschien; Zum Beispiel würde ich Ihre schreiben als ... C = char (V + Einsen (Größe (V)). * (double ('a') - 1)); Ich denke, dass das den ZWECK des Codes für den "Gelegenheits" -Leser etwas offensichtlicher macht, auch wenn er das ASCII a == 97 weiß. –