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

Script läuft nach Compilieren nicht mehr

 

ChrisEi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2017, 16:01     Titel: Script läuft nach Compilieren nicht mehr
  Antworten mit Zitat      
Hallo,

ich habe ein kleines Programm erstellt, um Daten aus Excel graphisch darzustellen. Dabei sollen die Daten geglättet werden. Als *.m script läuft das Programm, compiliert kommt aber immer ein Fehler(sobald die Zeile xlin=linespace(...) aufgerufen wird)

Kann hier jemand helfen?

Code:
%Start des Programmes
%Read data from excel-file

[FileName,PathName,FilterIndex] = uigetfile('*.*');

[num, txt, raw] =xlsread([PathName FileName],-1);

xi=input('Column X      ');
yi=input('Column Y      ');
zi=input('Column Results 1    ');

x=num(:,xi);
y=num(:,yi);
z=num(:,zi);

xlin = linspace(min(x),max(x));
ylin = linspace(min(y),max(y));
[X,Y] = meshgrid(xlin,ylin);

Z1 = griddata(x,y,z,X,Y,'cubic');

% Create figure
figure1 = figure('Renderer','zbuffer',...
    'Color',[0.972549019607843 0.972549019607843 0.972549019607843]);
axes1 = axes('Parent',figure1,...
    'Position',[0.13 0.11 0.398125 0.815],...
    'CLim',[Lower_Limit Upper_Limit]);


xlim(axes1,[-100000 100000]);
ylim(axes1,[-100000 100000]);

grid(axes1,'on');
hold(axes1,'all');

% Create surf
surf(X,Y,Z1,'Parent',axes1,'FaceLighting','phong',...
    'FaceColor','interp',...
    'EdgeColor','none');
 


Harald
Forum-Meister

Forum-Meister


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

Zitat:
Als *.m script läuft das Programm, compiliert kommt aber immer ein Fehler(sobald die Zeile xlin=linespace(...) aufgerufen wird)

Welcher Fehler? (bitte hier rein kopieren)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Christoph123
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 31.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2017, 08:33     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

Zitat:
Als *.m script läuft das Programm, compiliert kommt aber immer ein Fehler(sobald die Zeile xlin=linespace(...) aufgerufen wird)

Welcher Fehler? ([size=24][b]Matrix dimensions must agree. Error in => UNI_Test.m at line 15)[/b][/size]

Grüße,
Harald


Die Line 15 ist : xlin = linspace(min(x),max(x));

Danke und Grüsse
Christoph
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: 07.09.2017, 09:46     Titel:
  Antworten mit Zitat      
Hallo,

um dem Fehler auf die Spur zu kommen, würde ich mal den Strichpunkt in der Zeile
Code:
x=num(:,xi)
 

entfernen. Dort dürfte ja das Problem liegen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Christoph123
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 31.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2017, 14:14     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich komme noch nicht so richtig mit "Anrworten" in dem Forum zurecht, deshalb manchmal späte Reaktion.

Das Wegnehmen des Semikolons bewirkt doch nur, dass
Code:
x=num(:,xi)

das x nicht angezeigt wird. Das Ergebnis (fehler) ist sonst identisch.

Das Problem ( nach der Fehlermeldung) liegt auch in der Codezeile

Code:


Grüsse
Christoph
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: 14.09.2017, 19:56     Titel:
  Antworten mit Zitat      
Hallo,

genau umgekehrt. Das Weglassen bewirkt, dass das Ergebnis angezeigt wird.
Wenn die linspace - Zeile nicht funktioniert, dann scheint irgendetwas mit x nicht zu stimmen. Und was das ist, kannst du herausfinden, indem du dir x anzeigen lässt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Christoph123
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 31.08.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2017, 10:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die Antwort. Das angezeigte "x" ist einfach ein Vektor mit entsprechenden Zahlen. Das "x" ist aber nicht das Problem, da das Programm als m-File ja ohne Probleme läuft. Nur die compilierte Version hat den Error. Deswegen hatte ich angenommen, dass Compiler-Einstellungen eventuell nicht korrekt sind.

Wenn ich die Settings des Compilers öffne (Stand Alone Application) wird keine Auswahl angeboten, sondern nur das Laden von zusätzlichen Settings?

UNI_Test.m
 Beschreibung:
Matlab m-File (die compilierte Version als Uni_Test.exe wurde nicht hochgeladen (Risiko Viren?)

Download
 Dateiname:  UNI_Test.m
 Dateigröße:  1013 Bytes
 Heruntergeladen:  262 mal
UNI_TEST.xls
 Beschreibung:
Excel File mit x, y, Werte Spalten, die eingelesen werden (Ohne Haeder)

Download
 Dateiname:  UNI_TEST.xls
 Dateigröße:  117 KB
 Heruntergeladen:  266 mal
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: 27.09.2017, 11:40     Titel:
  Antworten mit Zitat      
Hallo,

mich wundert, dass das ganze überhaupt soweit durchläuft. Ich bekomme schon in dieser Zeile
Code:
TITEL_NAME=input('Titel       :');

die Fehlermeldung Attempt to execute SCRIPT (Eingabe) as a function

Das soll vermutlich
Code:
TITEL_NAME=input('Titel       :', 's');

sein.

Wenn ich ein Executable erstelle und das doppelklicke, kommt die Eingabeaufforderung im Command Window nicht. Wenn ich die .exe aus einer Konsole heraus ausführe, bekomme ich
Zitat:
'<Eingabe>' is not recognized as an internal or external command,
operable program or batch file.


Sinnvoller wäre es m.E., eine kleine Benutzeroberfläche zur Bedienung des Programms zu erstellen, z.B. mit appdesigner .

Grüße,
Harald
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.