Wie schaffe ich das?
Mit strfind(str,'F7') kann ich die Position auslesen, wo F7 vorkommt. Nun müsste ich eine Routine haben, welche mir ausgehend von dieser Position den folgenden Bereich des strings wiedergibt: nach links bis irgendwo ein + oder - erscheint. Nach rechts bis irgendwo ein Space erscheint.
Ist das möglich?
Ich benötige eine solche Routine unbedingt für meine Masterarbeit und wäre für eure Hile seeeehr dankbar.
str=strrep(str,'+ ','+'); %Leerstellen nach Vorzeichen entfernen
str=strrep(str,'- ','-'); %Leerstellen nach Vorzeichen entfernen
Pcell=textscan(str, '%s', 'delimiter',' '); %Terme in Pcell schreiben
for u=1:t;
index=find(cellfun('length',strfind(Pcell{1},['F',num2str(u)]))); %Fi suchen
nindex=size(index); %Zählen wie oft Fi vorkommt
T=cell(1); %Nullwert setzen, falls Fi gar nicht vorkommt
T{1}='0'; %Nullwert setzen, falls Fi gar nicht vorkommt
for s=1:nindex(1); %Schleife, um Terme zu sortieren
substr1=Pcell{1}(index(s,1));
substr2=strrep(substr1,['F',num2str(u),'v'],'1');
T=strcat(T,'+',substr2);
end;
Pvec(u)=T;
clear T;
end;
Wie mir scheint hat meine Lösung ein wenig Vorschlaghammer Charakter. Mit Regexp würde es wohl eleganter gehen. Ich schaue mir das nochmals an.
Gruss Scapa
Einstellungen und Berechtigungen
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
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.