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

Leerzeichen entfernen

 

Aiksn
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2016, 17:05     Titel:
  Antworten mit Zitat      
Ein neuer Tag, ein neues Problem Very Happy

Ich habe jetzt folgenden Code:
Code:
alphaWerte = matrix(:,2);
XausgleichWerte = matrix(:,3);
YausgleichWerte = matrix(:,4);
ZausgleichWerte = matrix(:,5);


alphaWerte = num2str(alphaWerte);
XausgleichWerte = num2str(XausgleichWerte);
YausgleichWerte = num2str(YausgleichWerte);
ZausgleichWerte = num2str(ZausgleichWerte);
anfangVektor = 1;
endeVektor = steps+1;
i=1;


for(Stelle = anfangVektor:1:endeVektor)
   Gbefehle(i,1) = '0';
   Gbefehle2(i,1) = '1';
   VektorB(i,1) = 'B';
   VektorX(i,1) = 'X';
   VektorY(i,1) = 'Y';
   VektorZ(i,1) = 'Z';
   VektorG(i,1) = 'G';
 
   i= i+1;
end
   bNeu = strcat(VektorB,alphaWerte);
   xNeu = strcat(VektorX,XausgleichWerte);
   yNeu = strcat(VektorY,YausgleichWerte);
   zNeu = strcat(VektorZ,ZausgleichWerte);
   gNeu1 = strcat(Gbefehle,Gbefehle2);
   gNeu = strcat(VektorG,gNeu1);
   GCODE = [gNeu,xNeu,yNeu,zNeu,bNeu];
 
   fid = fopen('testfile.txt', 'w');
for I = 1:size(gNeu,1)
    fprintf(fid, '%s %s %s %s %s \nG01 C2=360 \n', gNeu(I,:), xNeu(I,:), yNeu(I,:), zNeu(I,:),bNeu(I,:));
end
fclose(fid);


Und als Textausgabe bekomme ich:
Code:
G01 X -3.5726 Y0 Z-8.51561 B-48
G01 C2=360
G01 X  -3.657 Y0 Z -8.6345 B-46
G01 C2=360
G01 X -3.7374 Y0 Z-8.76357 B-44
G01 C2=360
G01 X -3.8128 Y0 Z-8.90266 B-42


Um damit aber weiter zu arbeiten muss ich die Leerzeichen in den einzelnen Spalten löschen. Es sollte also eher so aussehen:
Code:
G01 X-3.5726 Y0 Z-8.51561 B-48
G01 C2=360
G01 X-3.657 Y0 Z-8.6345 B-46
G01 C2=360
G01 X-3.7374 Y0 Z-8.76357 B-44
G01 C2=360
G01 X-3.8128 Y0 Z-8.90266 B-42


Ich hab es schon mit verschiedenen Dingen wie:
Code:
str = 'hey ho';
name = strrep(str, ' ', '');

%oder
A= A(find(~isspace(A))),

ausprobiert. Allerdings funktioniert es nicht, bzw. beim strrep kommt der Fehler dass es sich um einzelne Strings handeln soll und nicht um ein Array.

Gibt es eine Möglichkeit, dass ich in jedem Vektor in jeder Zeile die spaces rausbekomme ?

Grüße
Aiksn
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 15.11.2016, 17:58 Uhr von Jan S
Von Beitrag Matrix in Textdatei speichern aus dem Forum Programmierung


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.11.2016, 18:01     Titel:
  Antworten mit Zitat      
Hallo Aiksn,

Bitte öffne einen neuen Thread für eine neue Frage. Danke!

Wie wäre es, die Leerzeichen erst gar nicht zu schreiben, wenn Du sie nicht willst:
Code:

for I = 1:size(gNeu,1)
    fprintf(fid, '%s %s%s %s %s \nG01 C2=360 \n', gNeu(I,:), xNeu(I,:), yNeu(I,:), zNeu(I,:),bNeu(I,:));
end

Hier ist also an einer Stelle statt "%s %s" nur "%s%s" enthalten.

Zitat:
ausprobiert. Allerdings funktioniert es nicht, bzw. beim strrep kommt der Fehler dass es sich um einzelne Strings handeln soll und nicht um ein Array.

Bitte poste immer den originalen Code und die vollständige Fehlermeldung. Mit einer ungefähren Beschreibung weiß man nur, dass da wohl irgendein Problem ist, aber einen konkreten Vorschlag zu machen würde wildes Raten beinhalten.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Aiksn
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 14.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2016, 15:55     Titel:
  Antworten mit Zitat      
Hallo Jan,

mit deinem Vorschlag entferne ich leider diie falschen Leerzeichen :D.

Ich formulier meine Frage mal anders.

Ich habe 2 Vektoren, einmal einen XVektor der nur 'X' enthält:

X
X
X
X

Der zweite Vektor enthält meine Zahlenwerte:

-4.0867
-4.043
-3.9856
-3.914

Wenn ich diese beiden Vektoren jetzt mit strcat verbinde bekomme ich folgendes:

Code:
X -4.0867
X  -4.043
X -3.9856
X  -3.914


Ich hätte es aber gerne ohne die Leerzeichen, sprich so:
X-4.0867
X-4.043
X-3.9856
X-3.914

Ich habe es so probiert:
Code:
xCurr = regexprep(xNeu(1,:), ' ', '');
xNeu(1,:) = xCurr;

Dabei ist xNeu der zusammengesetzte Vektor aus dem ich die Leerzeichen entfernen will.
Allerdings bekomme ich nun den Fehler:
Subscripted assignment dimension mismatch.

Error in stringtest (line 13)
xNeu(1,:) = xCurr;

Das liegt vermutlich daran, dass der neue String kürzer ist als der vorherige weil die Leerzeichen fehlen. Was kann ich da nun tun ?

Grüße
Aiksn
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 - 2025 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.