WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Integer - Char Tabelle erstellen

 

ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 11:10     Titel: Integer - Char Tabelle erstellen
  Antworten mit Zitat      
Hallo liebes Forum!
Ich würde mir gerne eine Tabelle erstellen, die jedem IntegerWert von 1-512 einen Char Wert zuweist. Die ASCII Tabelle erfüllt da nicht so ganz meinen Zweck finde ich. Ich dachte an folgendes
int 1 = char 'a'
int 2 = char 'b'
...
int 27 = char 'aa'.
Gibt es da einen einfachen Ansatz oder muss ich das alles einzeln per Hand einspeisen? Darauf habe ich eher weniger Lust Smile

Danke euch und liebe Grüße


ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 11:11     Titel:
  Antworten mit Zitat      
....hab was vergessen.
Am Besten ist das ganze natürlich in nem Vektor, sodass ich später mit einem integerwert einfach einfach den charwert auslesen kann.
So in der Art:

Code:

vektor(3) = 'c'
 


Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.09.2018, 12:45     Titel:
  Antworten mit Zitat      
Hallo,

klar geht das. Die Frage ist, nach welcher Systematik das passieren soll.
Auf den ersten Blick sieht es nach der Konvention aus, die Excel für Spaltennamen verwendet. Dazu gäbe es schon fertige Sachen, z.B.
https://de.mathworks.com/matlabcent.....olumn-converter-for-excel

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 13:23     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke dir für deine Antwort!
Ich habe es folgendermaßen probiert (und auch viele andere Wege, aber ich glaube der hier ist am ehesten an der Lösung dran):
Code:

for i=1:1:512
char_array(i,:) = xlscol(i);
end
 

Bekomme jetzt allerdings den Fehler
"Assignment has more non-singleton rhs dimensions than non-singleton subscripts".
Ich nehme mal an, dass es daher kommt, dass mein char_array die Dimension 1 hat. Und bei der Zuweisung
Code:
xlscol(27)
würde er mit
Code:
die Dimension 2 bekommen.
Habe dann Versucht den Array davor zu initialisieren, aber das hat leider auch nicht geklappt.

Wo hängt es bei mir?

Grüße
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 04.09.2018, 14:04     Titel:
  Antworten mit Zitat      
Hallo,

du könntest ein cell-Array anstatt eines char-Array verwenden (geschweifte Klammern):
Code:

for i=1:1:512
    char_array{i,:} = xlscol(i);
end
 


Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 14:04     Titel:
  Antworten mit Zitat      
Mit einem Cell-array komme ich etwas weiter. Aber ich frage mich, ob es nicht auch eine Alternative ohne die Funktion gibt indem man sich einmalig einen Vektor
Code:
S = 'abcdefghijklmnopqrstuvwxyz';
definiert und dann über S(5) usw arbeitet?
Habe es aber leider auch noch nicht hinbekommen, aiai.

Hoffe jemand kann meine Ansätze zusammen führen Smile
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.09.2018, 14:27     Titel:
  Antworten mit Zitat      
Hallo,

es bleibt für mich die Frage offen, ob du überhaupt genau das Schema der Spaltennamen von Excel haben möchtest oder etwas anderes. Wenn 27 zu 'AA' werden soll, kann 53 zu 'BA', 'AAA' oder vielleicht was ganz anderem werden.

Wenn du das Schema der Spaltennamen von Excel haben, dann würde ich immer direkt xlscol aufrufen statt das alles in einem Vektor abzuspeichern.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 14:46     Titel:
  Antworten mit Zitat      
Hallo Harald,

nein das ganze hat mit Excel nichts zu tun...Smile.
Daher dachte ich auch daran, ob ich das ganze nicht mit einem eigenen Vektor
Code:
S = 'abcdefghijklmnopqrstuvwxyz';
lösen kann.

Bin weiterhin für jede Hilfe dankbar Smile

Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.09.2018, 15:06     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
nein das ganze hat mit Excel nichts zu tun...

Dann beantworte doch bitte die Frage, wie das Schema fortgesetzt werden soll.

Ich würde zu einem Cell Array raten, da du sonst bei Characters mit mehr als einem Zeichen wie 'aa' Probleme mit der Zuordnung bekommst. Alternativ der neue String-Datentyp.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 04.09.2018, 15:08     Titel:
  Antworten mit Zitat      
Hallo,

die Frage war wohl eher darauf gerichtet wie der Vektor aussehen soll. Gibt bei Nummer 53 verschiedene Arten wie es weiter gehen soll. Siehe Haralds Beitrag:
Zitat:

Wenn 27 zu 'AA' werden soll, kann 53 zu 'BA', 'AAA' oder vielleicht was ganz anderem werden.

Wenn du die Reihenfolge wie bei Excel willst (also 53 -> 'BA') ist xlscol die bessere Alternative. Das über einen eigenen Vektor machen zu wollen ist deutlich aufwändiger.
Soll 53 zu einem 'AAA' werden kann man das auch selbst relativ einfach über einen Vektor machen, wenn es unbedingt sein muss.
Die Frage ist wie dein finaler Vektor aussehen soll...

Grüße
Jonas

PS: Da war Harald einfach wieder zu flink für mich Very Happy
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 15:27     Titel:
  Antworten mit Zitat      
Hallo ihr beiden, vielen lieben Dank euch schonmal! Smile

Bei 53 sollte 'AAA' folgen. Daher fand ich die sache mit xlscol nicht so zielführend für mich...sorry falls ich mich da falsch ausgedrückt habe.
Vektor sollte also folgenermaßen aussehen
'A'
'B'
..
'AA'
'BB'
...
'AAA'
'BBB'
...
'AAAA'
'BBBB'

Ich hoffe jetzt ist es verständlich. Falls es möglich ist das selbst zu bauen wäre es genial. Smile

Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.09.2018, 15:48     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Bei 53 sollte 'AAA' folgen.

Wusste ich eben bisher nicht. Ebensowenig wie dass 28 zu 'BB' werden soll und nicht etwa zu 'AB'.

Da ich nun weiß (glaube ich jedenfalls), was du willst: kein Problem.

Code:
init = cellstr(char(65:90)');
tmp = init;
v = init;
for k = 1:ceil(512/26)
    tmp = strcat(tmp, init);
    v = [v; tmp];
end
v(513:end) = [];


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
ASCII

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2018, 16:09     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

Zitat:
Bei 53 sollte 'AAA' folgen.

Wusste ich eben bisher nicht. Ebensowenig wie dass 28 zu 'BB' werden soll und nicht etwa zu 'AB'.

Da ich nun weiß (glaube ich jedenfalls), was du willst: kein Problem.

Code:
init = cellstr(char(65:90)');
tmp = init;
v = init;
for k = 1:ceil(512/26)
    tmp = strcat(tmp, init);
    v = [v; tmp];
end
v(513:end) = [];


Grüße,
Harald


woohooo Smile
Vielen lieben Dank dir Harald (und natürlich auch an J0nas Smile).
Thread ist hiermit beantwortet und kann als solcher markiert werden.

Grüße Smile
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.