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

Erstellen Funktion für GUI

 

Willi9191
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 08.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2015, 10:23     Titel: Erstellen Funktion für GUI
  Antworten mit Zitat      
Hallo Leute.

Ich möchte gerne eine CSV über GUI einlesen lassen und habe dafür via m.File schon etwas geschrieben was diese einliest. Das ist keine gewöhlnliche "schön sortierte" Excel File sondern sehr komplex und man muss extra dafür einen Code schreiben, damit er sich die Sachen exakt aussucht, welche ich benötige.

Nun ist meine Frage, wie ich mein Skript in eine Funktion umwandeln kann sodass die GUI diese aufrufen kann.

Code:

clear all; clc; close all;


quelle = 1

if (quelle == 1)


fullname = 'C:\Users\xyz.csv
fid=fopen(fullname);
% return

ok      = 1;
indzeil = 0;
i=0;

while (ok==1)
   
     indzeil = indzeil + 1;
     tline   = fgetl(fid);
   
    %This is the logical NOT operator, so ~isempty(X) will
    %evaluate to true when X is not empty.
    if ~isempty(strfind(tline,'X resolution (Xcv) ='))
        tmp = tline(22:end-1); %Takes the number from beg. to end without comma
        dx  = str2double(tmp)
    end
   
    if ~isempty(strfind(tline,'Y resolution (Ycv) ='))
        tmp = tline(22:end-1);
        dy  = str2double(tmp)
    end
   
    if ~isempty(strfind(tline,'Xunit'))
        einheitx  = tline(9:end-1)
    end
   
    if ~isempty(strfind(tline,'Yunit'))
        einheity  = tline(9:end-1)
    end
   
    if ~isempty(strfind(tline,'Zunit'))
        einheitz  = tline(9:end-1)
    end
   
   
    sor = isempty(strfind(tline,'POS')); %if empty 1
   
    if (sor==0) %pos gefunden
        i=i+1; %anz gefundenen Zeilen
       
        tmp1 = strread(tline, '%s', 'delimiter', ',');
        N    = length(tmp1); %anz gefundenen Spalten
       
        tmp2 = tmp1(2:N);
               
        for k=1:N-1
            tmp3(k) = str2num( tmp2{k,1} );
        end
       
        data(i,:)=tmp3;

    end


   
    if(tline==-1),ok=-1;end
     
end
 


Wäre nett, wenn ihr mir etwas helfen könntet.

Zuletzt bearbeitet von Willi9191 am 08.04.2015, 10:37, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Willi9191
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 08.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2015, 10:23     Titel:
  Antworten mit Zitat      
P.S: Der Code geht natürlich noch weiter. Wurde hier nur eingefügt damit ihr ungefähr eine grobe Vorstellung von dem habt was ich vor habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lord nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2015, 11:56     Titel:
  Antworten mit Zitat      
Hallo Willi,

so kannst du den code als function schreiben. Wenn du noch anderes als data benötigst musst du eben die rückgabeargumente erweitern.

Code:

function data = readmyfunkyexcelfile(fullname)

fid=fopen(fullname);
% return

ok      = 1;
indzeil = 0;
i=0;

while (ok==1)
   
     indzeil = indzeil + 1;
     tline   = fgetl(fid);
   
    %This is the logical NOT operator, so ~isempty(X) will
    %evaluate to true when X is not empty.
    if ~isempty(strfind(tline,'X resolution (Xcv) ='))
        tmp = tline(22:end-1); %Takes the number from beg. to end without comma
        dx  = str2double(tmp)
    end
   
    if ~isempty(strfind(tline,'Y resolution (Ycv) ='))
        tmp = tline(22:end-1);
        dy  = str2double(tmp)
    end
   
    if ~isempty(strfind(tline,'Xunit'))
        einheitx  = tline(9:end-1)
    end
   
    if ~isempty(strfind(tline,'Yunit'))
        einheity  = tline(9:end-1)
    end
   
    if ~isempty(strfind(tline,'Zunit'))
        einheitz  = tline(9:end-1)
    end
   
   
    sor = isempty(strfind(tline,'POS')); %if empty 1
   
    if (sor==0) %pos gefunden
        i=i+1; %anz gefundenen Zeilen
       
        tmp1 = strread(tline, '%s', 'delimiter', ',');
        N    = length(tmp1); %anz gefundenen Spalten
       
        tmp2 = tmp1(2:N);
               
        for k=1:N-1
            tmp3(k) = str2num( tmp2{k,1} );
        end
       
        data(i,:)=tmp3;

    end


   
    if(tline==-1),ok=-1;end
     
end
 

 


Gruß Lord nibbler
 
Willi9191
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 08.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2015, 13:45     Titel:
  Antworten mit Zitat      
Besten Dank.

Habe das nun dementsprechend angepasst.

Wie könnte ich jetzt, wenn ich mir eine ähnliche zweite Funktion erstellt habe von einem Button auf den anderen darauf zugreifen, praktisch Funktionenkopplung. Hat da jemand eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.04.2015, 21:48     Titel:
  Antworten mit Zitat      
Hallo Willi9191,

Zitat:
Wie könnte ich jetzt, wenn ich mir eine ähnliche zweite Funktion erstellt habe von einem Button auf den anderen darauf zugreifen, praktisch Funktionenkopplung.

Die Frage ist noch nicht klar. Du kannst den Aufruf einer Funktion einfach in den Callback des Buttons einfügen. Unter einer "Funktionen-Kopplung" kann ich mir nichts vorstellen.

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 - 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.