Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Fachkräfte:
Systemingenieur (m/w) modellbasierte Softwareentwicklung
Entwicklung modellbasierter Software in MATLAB und Simulink
ESG Elektroniksystem- und Logistik-GmbH - Rüsselsheim

Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Testingenieur/in HIL für vollautomatisiertes und fahrerloses Fahren
Entwicklung des Konzepts für einen HIL-Prüfstandaufbau auf Systemebene
Robert Bosch GmbH - Stuttgart

Software-Entwicklungsingenieur (m/w) Referenzierungsmethoden autonomes Fahren
Automatisierung von Bewertungsmethoden und Kalibrierverfahren nach Kundenanforderungen
EFS - Ingolstadt

Berechnungsingenieur Längsdynamik (ICE, HEV, BEV) (m/w)
Simulation von Fahrleistung und Verbrauch für konventionelle Fahrzeuge
MBtech Group GmbH & Co. KGaA - Sindelfingen, Fellbach

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hexadecimal Loop

 

Jovo12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2018, 11:24     Titel: Hexadecimal Loop
  Antworten mit Zitat      
Hallo,

kennt sich jemand mit Hexadecimal Schleifen aus.

Ich würde gerne eine Schleifehochzählen lassen in Hexadecimal

Startwert 0000
Nächster Schritt 0010 usw und dies Möchte ich einer Zeile dann immer Zuweisen.

Würde mich über ein Kommentar freuen.

Mfg


Jan S
Moderator

Moderator


Beiträge: 10.670
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.06.2018, 03:29     Titel: Re: Hexadecimal Loop
  Antworten mit Zitat      
Hallo Jovo12,

Es gibt keine "hexadezimalen Schleifen".
Du kannst aber einfach eine Schleife mit dezimalem Zähler verwenden und ihn als Hex-code ausgeben:
Code:
for k = 0:16:160
  fprintf('%.4x\n', k);
end


Ich weiß nicht, was dies bedeutet:
Zitat:
dies Möchte ich einer Zeile dann immer Zuweisen.


Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jovo12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2018, 08:02     Titel:
  Antworten mit Zitat      
Hallo,

Vielen Dank !

Das bedeutet, das immer in die nächste Zeile geschrieben werden.
Also. 1.Zeile 0000
Nächste Zeile 0010
Nächste Zeile 0020
Das habe ich damit gemeint
 
Jovo12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 10:07     Titel:
  Antworten mit Zitat      
Code:
Mout = Mneu;
            Mout(:,2:end+1)=Mneu(:,1:end);      
            for idx = 1:n_row

                Mout{idx,1} =char(sprintf('%4X',idx));        
            end
           
            disp(Mout)
           
            %%Counter in Hex Umformen
            Mout_hex = Mout;
           
            for idx = 1:n_row
                hex_char = Mout_hex{idx,1};
                char_no = 1;
while hex_char(char_no)==' '                    
hex_char(char_no) = '0';
                    char_no = char_no + 1;
                end
                Mout_hex{idx,1} = hex_char;
            end
           
            disp(Mout_hex)

Hallo,
ich habe es so gemacht. Aber es beginnt von 0001 es soll aber von 0000-> 0010 usw. hochzählen. Soblad ich es von Null anfangen lasse zu zählen, wird ein Fehler ausgegeben leder will es noch so wie ich möchte.

[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]
 
Jan S
Moderator

Moderator


Beiträge: 10.670
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.08.2018, 17:40     Titel:
  Antworten mit Zitat      
Hallo Jovo12,

Als Leser kann man nicht wissen, was Dein Code tun soll. Was ist "Mneu"? Schon die ersten beiden Zeilen sind nicht klar:
Code:
Mout = Mneu;
Mout(:,2:end+1)=Mneu(:,1:end);

sprintf gibt bereits ein char zurück, so dass man das zusätzlich char() besser weglässt.

Wie wäre:
Code:
sprintfc('%04x', 0:16:100).'

Oder in modernen Matlt-Versionen:
Code:
compose('%04x', 0:16:100).'

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jovo12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2018, 09:15     Titel:
  Antworten mit Zitat      
Code:
Mout(:,2:end+1)=Mneu(:,1:end);      % Spalten verschieben
                for idx = 1:n_row
                   
                    Mout{idx,1} =char(sprintf('%.4X',idx-1)); % Hex Zähler einfügen
                    %
                end
               
                disp(Mout)

%%Counter in hexadezimal umformen
%                 Mout_hex = Mout; %Mout wird in neue Variable geschrieben
%                
%                 for idx = 1:n_row
%                     hex_char = Mout_hex{idx,1};
%                     char_no = 1; % Zähler gleich 1^setzen
%                     while hex_char(char_no)==' ' % While Schleife soll so lang nullen Setzen bis Char_no gleich 4
%                         hex_char(char_no) = '0';
%                         char_no = char_no + 1;
%                     end
%                     Mout_hex{idx,1} = hex_char;
%                 end
%                
%                 disp(Mout_hex)


Hoffe das ist verständlicher

[EDITED, Jan, Nochmals: Bitte Code-Umgebung benutzen - Danke!]
 
Jan S
Moderator

Moderator


Beiträge: 10.670
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.08.2018, 15:10     Titel:
  Antworten mit Zitat      
Hallo Jovo12,
Zitat:
Hoffe das ist verständlicher

nein, leider nicht.

Hast Du meine Antwort gelesen? Dort findest Du zwei Lösungsvorschläge.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
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
.



goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.