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

mehrzeiliger Text als eine Variable

 

ferrero111

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2011, 16:12     Titel: mehrzeiliger Text als eine Variable
  Antworten mit Zitat      
hey,

ich hab auf die schnelle hier nichts gefunden, was mit meinem Problem zu tun hat.

ich muss ein Programm programmieren, dass Wörter in einem von mir hineinkopierten Text findet und herrausschreibt, sobald diese gefunden werden.

Zum Vergleichen verwende ich

Code:

wobei a und b die zwei Texte sind,
was bei kurzen Texten auch funktioniert,

Falls ich nun aber Texte mit mehreren Zeilen hineinkopiert, sieht das Matlab auch als mehrere Zeilen an und ich muss das bisher mit Hand zu einer einzigen Zeile zusammenfügen.

Nun meine Frage: gibts einen Befehlt mit dem das geht?

Vielen Dank, ihr würdet mir extrem helfen.


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 14.12.2011, 16:38     Titel:
  Antworten mit Zitat      
Moin,

am Besten geht es, wenn du ein kleines Beispiel zur Verfügung stellst, welches dein Problem verdeutlicht. Das erleichtet die Hilfe ungemein, da die Zeit und Energie zum Befragen der Kristallkugeln gespart wird Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
ferrero111

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2011, 21:01     Titel:
  Antworten mit Zitat      
schon mal danke fürs zeitnehmen Wink

also ich hab einen mehrzeiligen text:

Code:

Are Options on Index Futures Profitable Risk Averse Investors? Empirical
Evidence, 2011, with George M. Constantinides, Michal Czerwonko, and
Stylianos Perrakis, Journal of Finance 66, No. 4, 1401-1431.
 


aus dem will ich jetzt "Journal of Finance" herauslesen also

Code:

b='Journal of Finance';
a='Are Options on Index Futures Profitable Risk Averse Investors? Empirical
Evidence, 2011, with George M. Constantinides, Michal Czerwonko, and
Stylianos Perrakis, Journal of Finance 66, No. 4, 1401-1431.';
c=findstr(a,b);
 

bei c wird dann die stelle angegeben in der es gefunden wird soweit ich es verstanden habe,

Matlab nimmt den ganzen Text nun als 4 unterschiedliche Zeilen sobald ich ihn hineinkopier also wird ja a nur als

Code:

a='Are Options on Index Futures Profitable Risk Averse Investors?'
 


gesehen
ich will, dass a aber der ganze text ist und da ich extrem viel text habe, lohnt es sich nicht per hand dies alles zu einer zeile zusammenzufügen

ich hoffe ich konnte mein problem verdeutlichen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.12.2011, 23:22     Titel:
  Antworten mit Zitat      
Hallo ferrero111,

Der Schlüssel zur Lösung steht sehr versteckt in Deiner Fragen:
Zitat:
Matlab nimmt den ganzen Text nun als 4 unterschiedliche Zeilen sobald ich ihn hineinkopier also wird ja a nur als...

"Hineinkopier" bedeutet, dass der Text vorher in der Zwischenablage steckt!
Dort kann man ihn gut erreichen und modifizieren.

Also zunächst den text in die Zwischenablage kopieren, dann diese Funktion aufrufen:
Code:
function FormatClipText
% Get String from clipboard:
Str = clipboard('paste');
if isempty(Str)
  warning(['JSimon:', mfilename, ':NoText'], ...
     'Cannot convert clipboard to text!');
  return;
end

% Remove trailing line break
LF = char(10);
if Str(end) == LF
  Str(end) = [];
end

% Care for a single space at the end of each line:
% No REGEXPREP to support Matlab 6.5.
index = strfind(Str, [' ', LF]);
while ~isempty(index)
   Str(index) = [];
   index      = strfind(Str, [' ', LF]);
end

% Convert quote caracters:
Str = strrep(Str, char(39), char([39, 39]));

% Add square brackets and quotes:
Str = strrep(Str, LF, [' '', ...', LF, '    ''']);
Str = ['[''', Str, '''];'];

% Finally copy the formated string in the clipboard again:
clipboard('copy', Str);
 

Zum Schluß kannst Du den Text hübsch formatiert per Strg-V im Editor einfügen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 15.12.2011, 08:43     Titel:
  Antworten mit Zitat      
Moin,

@Jan S: Die Funktion wäre ein guter Beitrag für die Skripte-Ecke Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
ferrero111

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2011, 13:21     Titel:
  Antworten mit Zitat      
hey,

danke funktioniert soweit einwandfrei, leider programmier ich mit matlab noch nicht so lange,

kann ich die function nun auch direkt in mein programm einfügen, so dass man diese nicht extra aufrufen muss, ich programmier es für eine dritte person und am besten wäre es wenn man es nur einfügt und dann läuft es

und nochmal vielen dank

gruß
julian
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.12.2011, 13:42     Titel:
  Antworten mit Zitat      
Hallo ferrero111,

Du kannst statt der Benutzung des Clipboards natürlich auch soetwas schreiben:
Code:
function CleanStr = FormatMultiLineText(Str)

Ich halte automatische Code-Erstellung aber für sehr fehler-anfällig.

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
.





 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.