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

Zahlen durch string ersetzen

 

Wieland
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 03.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2020, 21:13     Titel: Zahlen durch string ersetzen
  Antworten mit Zitat      
Hallo,

ich habe eine Matrix (double) 87866x1 mit unterschiedlichen Zahlen und möchte bestimmte Zahlen durch ein string ersetzen. z. B. alle Zahlen der Größe 7000110 durch B01.

Dafür möchte ich gerne die Funktion find verwenden.

Wenn die Matrix "Name" heißt, hatte ich folgendes versucht:

Name(find(Name == 7000110)) = "B01"

Das funktioniert leider nicht.

Ein wahrscheinlich trivales Problem, aber leider komme ich nicht auf die Lösung.

Vielen Dank im vorraus für die Hilfe.

Wieland
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

Zitat:
Das funktioniert leider nicht.

Bitte immer dazu schreiben, was daran nicht funktioniert.

Ein Problem dürfte sein: Double kann nur Zahlen enthalten.
Wenn du einen Teil der Zahlen durch Strings ersetzen willst, kannst du z.B. mit num2cell in ein Cell Array umwandeln.

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
 
Wieland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 03.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2020, 22:56     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die erneut schnelle Antwort!

Nach dem Umwandeln in ein Cell Array kommt beim Anwenden der Formel
Name(find(Name == 7000110)) = "B01"
die Fehlermeldung:
Undefined operator '==' for input arguments of type 'cell'.

Lässt sich "find" nicht bei Cell Arrays anwenden? Und was könnte ich anstellen auf oben erfragte Lösung zu kommen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Lässt sich "find" nicht bei Cell Arrays anwenden?

Nein, das Problem ist (wie die Fehlermeldung sagt) bei ==
Das find ist sogar überflüssig.

Wenn du erst vergleichst und dann in Cell umwandelst, sollte es gehen:
Code:
select = Name == 7000110;
Name = num2cell(Name);
Name(select) = {"B01"};


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
 
Wieland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 03.01.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.05.2020, 12:10     Titel:
  Antworten mit Zitat      
Danke Harald, klappt super, auch wenn es doch einiges an Rechenzeit kosten, aber immer noch schneller als die Schleife, die ich vorher programmiert hatte (ohne dabei das Problem mit den Strings gelöst zu haben).

Da ich mehrere Zahlen ersetzen musste, habe ich die "selects" durchnummeriert, was gut funktioniert hat.

schönen Sonntag
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
.





 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.