Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Softwareentwickler (m/w) für automatische Codegenerierung
Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink im Bereich Fahrwerkregelsysteme
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Entwicklungsingenieur (m/w) für modellbasierte Softwareentwicklung
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Entwicklungsingenieur (m/w) für Fahrdynamikregelsysteme
Entwicklung der für die Fahrdynamik relevanten Funktionen
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Ingenieure (m/w) Funktionsentwicklung für Automatisiertes Fahren
Entwicklung von Software Funktionskomponenten für assistierte und automatisierte Fahrfunktionen
Continental AG - Frankfurt

Applikationsingenieur (w/m) Testsysteme HIL-Simulation
Projektierung von Hardware-in-the-Loop-Systemen (Hardware und Software) in Kundenprojekten
dSPACE GmbH - Paderborn

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Error using load

 

kwd46056
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 01.11.2017, 08:03     Titel: Error using load
  Antworten mit Zitat      
Hallo habe folgendes Problem: möchte simulationsdaten mit folgender Funktion

Code:
function  data  = readSimulation(freqs, simfile)                                  
%Einlesen der Simulationsergebnisse
%   Detailed explanation goes here

sim        = load(simfile);
data       = struct('f', {}, 'x', {}, 'F', {} );



% Ergebnisse von Frequenz, Weg und Kraft aus sbr.file
simfrequenz = sim.timeInt.RS_result.SRS_f.Sch_001.values;                            
simkraft    = sim.timeInt.RS_result.SRS_Fx.Sch_001.values;                          
simweg      = sim.timeInt.RS_result.SRS_x.Sch_001.values;                            


% Indizies finden für Simulationsdaten im Bereich ±1%
for ifreq = 1:length(freqs)                                                          
    flo     = freqs(ifreq)*0.99;                                                    
    fhi     = feqs (ifreq)*1.01;                                                    
    idx     = (flo < simfrequenz) && (simfrequenz <= fhi);                          
    data(ifreq) = struct('f', freqs(ifreq), 'x', simweg(idx), 'F', simkraft(idx) );    
end

end

 


mit folgendem Hauptprogramm

Code:
%% Defenition der Pfade

strPathSim  = 'C:\Users\David\Desktop\Test Simulation\HALL_FE091_23.10332.output';                
strPathMess = 'C:\Users\David\Desktop\Test Simulation\Messungen_Subvars\09 Messdaten\HALL';      

strHALL = 'Schwab_23.10332';
subvars = arrayfun(@(y) sprintf('p%02i',y),0:10, 'UniformOutput', false);  

strFileMess = ['HALL_' strHALL '_Messungen.csv'];
strFileSim  = cellfun(@(x) [strPathSim 'HALL_test_var_' strHALL '.' x '.mat'], subvars, 'UniformOutput', false); %Verwendet die Funktion für jede Zelle in einem Zellenbereich

arrayfreq = [.1 .2 .5 1 1.5 2 5 10];                                      

%% Plotten der Mess- und Simulationsergebnisse

 [erg, b] = plotMessSim(...
                   strHALL,...
                   subvars,...
                   arrayfreq, ...
                  [strPathMess strFileMess], ...
                   strFileSim ...
                   );
               
%% Ergebnisse in eine Datei schreiben und als PDF speichern
% plot
Printfigure(b, [], 'pdf');                                                  

%data
name = regexprep(get(b(1), 'Name'), '[.\/]', '_');
table  = struct2table(res);
writetable(table,[name '.xlsx']);

%% alles schließen
close(b);


aufrufen.

Matlab bringt mir folgende fehlermeldung:

Error using load
Argument must contain a character vector.

Kann mir jemand sagen wie ich den fehler beheben kann?

Vielen Dank im vorraus

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 17.537
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 11:30     Titel:
  Antworten mit Zitat      
Hallo,

ich zumindest sehe nicht, wo du readSimulation letztlich aufrufst.
Schau dir doch mal im Debugger an, was simfile beim Aufruf tatsächlich ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 01.11.2017, 11:42     Titel:
  Antworten mit Zitat      
Hallo,
erstmal vielen Dank für die Antwort. Bin totaler Neuling in Matlab und muss jetzt in meiner Bachelorarbeit mit Matlab programmieren um Simulationsergebnisse zu plotten. Komme da langsam aber sicher eine meine Grenzen und weiß nicht mehr weiter. Um auf deine Frage zurückzukommen wo readsimulation aufgerufen wird.

Dafür hab ich eine weitere Funktion aufgestellt um die Simuationsergebnisse zu plotten. Mit folgendem code:

Code:
function  [result, b] = plotMessSim(...
                      subvars,...
                      freqs,...
                      strHall,...
                      simfile,...
                      messfile)
%Daten von Messungen einlesen
messdata = readMessungen(messfile);

%Daten von Simulation einlesen
simdata  = readSimulation(simfile, freqs);

%für alle Frequenzen
alle_Frequenzen = sort(unique([messdata.f, simdata.f]));                   %sortieren und einmalig anzeigen aus Funktionen
       
%% Kraft-Weg (x-F) Plots mit Einrichtung der Seite
strsubvars = strtrim(sprintf('% s',subvars{:}));
b(2) = figure(...
    'Name', sprintf('%s x-F %s', strHall, strsubvars),...  
    'PaperType',    'A4', ...
                    'Units','centimeters', ...
                    'PaperUnits','centimeters');
pos   = get(b(2), 'Position');
psize = get(b(2), 'Papersize');
set(b(2), 'Position', [pos(1:2)+pos(3:4)-psize psize]);
set(0, 'defaultAxesFontSize', 6);

%Plots in drei Spalten verteilen
nSpalten = 3;                                                              %Seite wird in 3 Spalten aufgteilt
nReihen = ceil(length(alle_Frequenzen)/nSpalten);                          %Anzahl der Reihen auf der Seite mit Obergrenze

iSpalten  = 0;
iReihen   = 1;
result    = Formlen();

for plot = 1:length(alle_Frequenzen)
    freq = alle_Frequenzen(plot);
    iSpalten = iSpalten + 1;
    if iSpalte>nReihen, iSpalte=1; iReihen=iReihen+1;
    end
   
    dx = subplot(nReihen, nSpalten, plot);
    hold (dx, 'on');
    grid (dx, 'on');
    set  (dx, 'XMinorGrid', 'on', 'YMinorGrid', 'on');
   
 % Messdaten plotten
        indData = find(freq == [messdata.f]);
        if ~isempty(indData) &&  ~isempty(messdata(indData).x)
            plot(dx, messdata(indData).x, messdata(indData).F, '°-');
            result(end+1) = Formlen(messdata(indData), 'mess');
        end
end

%Simulationsdaten plotten
 for iSim = 1:length(subvars)
       inddata   = find(freq == [simdata(iSim).data.f]);
         if ~isempty(inddata) &&  ~isempty(simdata(iSim).data(inddata).x)
             plot(dx, simdata(iSim).data(inddata).x, simdata(iSim).data(inddata).F);
             result(end+1) = Formlen(simdata(iSim).data(inddata), subvars{iSim});
         end
                 
%Formatierung der Diagramme
 title( dx, sprintf('%.1fHz', freq));
       legend(  dx, Legend, 'FontSize', 5);
       xlim(    dx, [ -1.1  +1.1]);
       xlabel(  dx, 'x [mm]');
       ylim(    dx, [-50 +50]);
       ylabel(  dx, 'F  [kN]');
end


Vom Debugger höre ich zum ersten mal.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.537
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 11:50     Titel:
  Antworten mit Zitat      
Hallo,

ein Problem dürfte sein, dass die Argumente im Aufruf von readSimulation gegenüber der Deklaration vertauscht sind.
readSimulation(simfile, freqs) vs. readSimulation(freqs, simfile)

Zitat:
Vom Debugger höre ich zum ersten mal

Dann solltest du dich damit beschäftigen. Ist sehr hilfreich, um sich den Workspace von Funktionen anzusehen und so Probleme in ihnen zu lösen.
https://de.mathworks.com/help/matla.....process-and-features.html

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 01.11.2017, 12:22     Titel:
  Antworten mit Zitat      
Danke für den Link Harald, werd mich heut abend mal damit auseinandersetzen.

Ich poste hier mal meine zwei Hauptprogramme und die dazugehörigen Funktionen. Ich denke mein Fehler liegt bei den Input und Output Argumenten der jeweiligen Funktionen.

Hauptprog_v01 dient dazu die ganzen Messdaten und Simulationsergebnisse aus den Funktionen aufzurufen und zu plotten.

Code:


Hauptprogr_v01
%% Defenition der Pfade

strPathSim  = 'C:\Users\David\Desktop\Test Simulation\HALL_FE091_23.10332.output';                
strPathMess = 'C:\Users\David\Desktop\Test Simulation\Messungen_Subvars\09 Messdaten\HALL\';      

strHALL = 'Schwab_23.10332';
subvars = arrayfun(@(y) sprintf('p%02i',y),0:10, 'UniformOutput', false);  
strFileMess = ['HALL_' strHALL '_Messungen.csv'];
strFileSim  = cellfun(@(x) [strPathSim 'HALL_test_var_' strHALL '.' x '.mat'], subvars, 'UniformOutput', false);

arrayfreq = [.1 .2 .5 1 1.5 2 5 10];  
                                     
%% Plotten der Mess- und Simulationsergebnisse

 [erg, b] = plotMessSim(...
                   strHALL,...
                   subvars,...
                   arrayfreq,...
                  [strPathMess strFileMess],...
                   strFileSim ...
                   );


Hauptprogr_opt_v01 dient dazu wie beim oberen Programm die Pfade reinzulesen und das simulationsprogramm simpack zu starten-

Code:


Hauptprogr_opt_v01

%% definitions
%

strPathSim  = 'C:\Users\David\Desktop\Test Simulation\HALL_FE091_23.10332.output';
strPathMess = 'C:\Users\David\Desktop\Test Simulation\Messungen_Subvars\09 Messdaten\HALL';
spckMain    = 'C:\Users\David\Desktop\Test Simulation\HALL_FE091_23.10332.spck';
subvarRef   = 'C:\Users\David\Desktop\Test Simulation\Messungen_Subvars\09 Messdaten\HALL\HALL_Schwab_23.10332.p00.subvar';

strHALL     =  'Schwab_23.10332';

strFileMess = ['HALL_' strHALL '_Messungen.csv'];

arrayfreq   = [.1 .2 .5 1 1.5 2 5 10];

%% definition von Variablen
subvar = 'v01';
%vars.(subvars) = struct(...
%     'ID',       struct('value', ['"' strHALL '.' subvars '"'],    'unit', ''), ...
%     'kappa',    struct('value', 10.0367,    'unit', 'cm^5/kN'), ...
%     'A_eff',    struct('value', 57,         'unit', 'cm^2'), ...
%     'A_chan',   struct('value',  0.37,      'unit', 'mm^2'), ...
%     'l_chan',   struct('value',  0.1,       'unit', 'm'), ...
%     'cv',       struct('value',  0,         'unit', '') ...
%     );

%% simulieren
%status = createSubvars(subvarRef, subvar, vars.(subvar));
[status,cmdout] = startSimpack(spckMain,subvar);

%% evaluate
[erg, b] = plotMessSim(...
                  strHALL,...
                  subvar,...
                  arrayfreq,...
                  [strPathMess strFileMess],...
                  [strPathSim 'HALL_test_var_' strHALL '.' subvar '.mat']...
                  );




readSimulation liest die Simulationsergebnisse ein

Code:
function  data  = readSimulation( simfile, freqs)                                   % (simfile,freqs)=Werte die eingelesen werden; data=Werte die von Funktion berechnet werden
%Einlesen der Simulationsergebnisse
%   Detailed explanation goes here

sim        = load(simfile);
data       = struct('f', {}, 'x', {}, 'F', {} );


% Ergebnisse von Frequenz, Weg und Kraft aus sbr.file
simfrequenz = sim.timeInt.RS_result.SRS_f.Sch_001.values;                            %Simulationsergbenisse Frequenz
simkraft    = sim.timeInt.RS_result.SRS_Fx.Sch_001.values;                           %Simulationsergebnisse Kraft
simweg      = sim.timeInt.RS_result.SRS_x.Sch_001.values;                            %Simulationsergebnisse Weg


% Indizies finden für Simulationsdaten im Bereich ±1%
for ifreq = 1:length(freqs)                                                          %integer über den gesamten Einlesebereich der Frequenz
    flo     = freqs(ifreq)*0.99;                                                     %Frequenz low
    fhi     = feqs (ifreq)*1.01;                                                     %Frequenz high
    idx     = (flo < simfrequenz) && (simfrequenz <= fhi);                           %Index im Bereich zwischen flo und fhi
    data(ifreq) = struct('f', freqs(ifreq), 'x', simweg(idx), 'F', simkraft(idx) );  %Strukturausgabe ('F' wird auch idx verwendet, da es die gleiche Länge hat)
end

end


readMessungen soll die Messergenisse aus einem CSV-File einlese

Code:
function data = readMessungen(file)                                        %(file)=Werte die eingelesen werden; data=Werte die von Funktion berechnet werden
%Einlesen der Messungen (csv.file) und abspeichern im Strukturbereich
%   Detailed explanation goes here
   
     
    table = readtable(file);                                               %liest Tabellendaten ein
    data  = struct('f', {}, 'x', {}, 'F', {} );                            %definierte Strukturbereiche
   
    n=0;
    for i = 1:2:width(table)                                               %for Schleife zum durchlaufen der Tabelle für alle Frequenzen
        n    = n+1;
        name = table.properties.variable(i);                                
        freq = str2double(regexprep(name, {'_','[a-zA-Z]'},{'.' ''}));     %aufteilen der Frequenzspalten (jede Frequenz beinhalter den Weg x und die Kraft F)
        data(n)  = struct(...                                              
                   'f', freq, ...
                   'x', str2double(outs(table{1:end,i+0})),...             %Umwandlung in den numerischen Bereich
                   'F', str2double(outs(table{1:end,i+1})) );              %Umwandlung in den numerischen Bereich
    end
                   

end


zu guter letzt die bereits ein Beitrag weiter oben eingefügte Funktion plotMessSim: sie stellt die plots her

Code:
function  [result, b] = plotMessSim(...
                      subvars,...
                      freqs,...
                      strHall,...
                      simfile,...
                      messfile)
%Daten von Messungen einlesen
messdata = readMessungen(messfile);

%Daten von Simulation einlesen
simdata  = readSimulation(simfile, freqs);

%für alle Frequenzen
alle_Frequenzen = sort(unique([messdata.f, simdata.f]));                   %sortieren und einmalig anzeigen aus Funktionen
       
%% Kraft-Weg (x-F) Plots mit Einrichtung der Seite
strsubvars = strtrim(sprintf('% s',subvars{:}));
b(2) = figure(...
    'Name', sprintf('%s x-F %s', strHall, strsubvars),...  
    'PaperType',    'A4', ...
                    'Units','centimeters', ...
                    'PaperUnits','centimeters');
pos   = get(b(2), 'Position');
psize = get(b(2), 'Papersize');
set(b(2), 'Position', [pos(1:2)+pos(3:4)-psize psize]);
set(0, 'defaultAxesFontSize', 6);

%Plots in drei Spalten verteilen
nSpalten = 3;                                                              %Seite wird in 3 Spalten aufgteilt
nReihen = ceil(length(alle_Frequenzen)/nSpalten);                          %Anzahl der Reihen auf der Seite mit Obergrenze

iSpalten  = 0;
iReihen   = 1;
result    = Formlen();

for plot = 1:length(alle_Frequenzen)
    freq = alle_Frequenzen(plot);
    iSpalten = iSpalten + 1;
    if iSpalte>nReihen, iSpalte=1; iReihen=iReihen+1;
    end
   
    dx = subplot(nReihen, nSpalten, plot);
    hold (dx, 'on');
    grid (dx, 'on');
    set  (dx, 'XMinorGrid', 'on', 'YMinorGrid', 'on');
   
 % Messdaten plotten
        indData = find(freq == [messdata.f]);
        if ~isempty(indData) &&  ~isempty(messdata(indData).x)
            plot(dx, messdata(indData).x, messdata(indData).F, '°-');
            result(end+1) = Formlen(messdata(indData), 'mess');
        end
end

%Simulationsdaten plotten
 for iSim = 1:length(subvars)
       inddata   = find(freq == [simdata(iSim).data.f]);
         if ~isempty(inddata) &&  ~isempty(simdata(iSim).data(inddata).x)
             plot(dx, simdata(iSim).data(inddata).x, simdata(iSim).data(inddata).F);
             result(end+1) = Formlen(simdata(iSim).data(inddata), subvars{iSim});
         end
                 
%Formatierung der Diagramme
 title( dx, sprintf('%.1fHz', freq));
       legend(  dx, Legend, 'FontSize', 5);
       xlim(    dx, [ -1.1  +1.1]);
       xlabel(  dx, 'x [mm]');
       ylim(    dx, [-50 +50]);
       ylabel(  dx, 'F  [kN]');
end


Ich weiß ist jetzt unübersichtilich , aber vielleicht findet ein geschultes Auge mit mehr Erfahrung wo hier der Fehler liegt.

Wenn ich Hauptprog_v01 aufrufe gibt Matlab folgende Fehlermeldung raus:

>> Hauptprog_V01
Error using readtable (line 197)
Input must be a row vector of characters.

Error in readMessungen (line 6)
table = readtable(file); %liest Tabellendaten ein

Error in plotMessSim (line Cool
messdata = readMessungen(messfile);

Error in Hauptprog_V01 (line 25)
[erg, b] = plotMessSim(...

Wenn ich Hauptprog_opt_v01 aufrufe gibt Matlab folgende Fehlermeldung raus:

>> Hauptprogr_opt_v01
start SIMPACK for <v01>
end SIMPACK for <v01>
Error using readtable (line 197)
The file extension '.mat' is not recognized.

Error in readMessungen (line 6)
table = readtable(file); %liest Tabellendaten ein

Error in plotMessSim (line Cool
messdata = readMessungen(messfile);

Error in Hauptprogr_opt_v01 (line 31)
[erg, b] = plotMessSim(...

Ich danke euch ihm vorraus

Gruß kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.537
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 12:57     Titel:
  Antworten mit Zitat      
Hallo,

du hast mit dem Debugger (s.o.) viel bessere Möglichkeiten, den Fehler zu finden als jemand, der den Code nicht ausführen kann.

Die Fehlermeldung "Input must be a row vector of characters." sollte sich so überprüfen und korrigieren lassen.

Die Fehlermeldung "The file extension '.mat' is not recognized." ist an sich selbsterklärend. Man kann mit readtable nur Dateien mit bestimmten Endungen einlesen. .mat gehört nicht dazu.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 01.11.2017, 17:40     Titel:
  Antworten mit Zitat      
Okay mal schauen wie weit ich komm. Vielen Dank für die Antwort. Falls ich nicht weiter komm meld ich mich wieder.
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 02.11.2017, 08:30     Titel:
  Antworten mit Zitat      
Guten Morgen,

hab mich gestern Abend noch mit meinem Matlab Code rumgeschlagen.

Krieg mal wieder zwei neue Fehlermeldungen von Matlab:

Operands to the || and && operators must be convertible to logical scalar values.

Error in readSimulation (line 1Cool
idx = (flo < simfrequenz) && (simfrequenz <= fhi);

und

Error using load
Argument must contain a character vector.

Was bedeuten diese genau?
Mit dem debugger komm ich da irgendwie nicht weiter

Gruss kwd4605
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 02.11.2017, 15:25     Titel:
  Antworten mit Zitat      
Hallo nochmal,

hab jetzt im groben alle Fehler eleminieren können bis auf einen.

Er bringt mir immernoch den Fehler:

Error using load
Argument must contain a character vector.

Error in readSimulation
sim =load(simfile)

Wenn ich den debugger starte, zeigt er mir an, das es eine 1x1 cell ist. Dahinter ist ein mat. file hinterlegt das reingeladen werden soll.

Wie kann ich den Fehler lösen?

Bin langsam mit meinem Latein am Ende

Besten Dank

Gruss kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.849
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.11.2017, 15:45     Titel:
  Antworten mit Zitat      
Hallo

Matlab meckert, weil simfile eine char sein soll, ist aber eine cell, wahrscheinlich cell string . Jedenfalls muss du ganz am Anfang schauen, woher simfile kommt und warum es dort cell ist. Sonst kannst du dir mit Prüfungsroutinen behelfen z.B. mit iscell vorher prüfen und entsprechend handeln.
Code:

if iscell(simfile)
    simfile = char(simfile)
end
sim =load(simfile)

 
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 02.11.2017, 18:16     Titel:
  Antworten mit Zitat      
Vielen Dank für die Hilfe. Der Fehler taucht nicht mehr auf .
Hätte noch eine Frage zum anderen Programm

Matlb bringt mir beim ausführen die Fehlermeldung

Undefined function or variable 'ID'.

Error in evalPlotMessSim (line 103)
allID = {result:ID};

obwohl die Variable definiert ist, oder hab ich was vergessen?

Code:
% Achsenbeschriftung

    ax      = [];
    ax(1)   = subplot(2, 1, 1);
    hold(   ax(1), 'on');
    grid(   ax(1), 'on');
    set(    ax(1), 'XMinorGrid', 'on', 'YMinorGrid', 'on');
   
    ax(2)   = subplot(2, 1, 2);
    hold(   ax(2), 'on');
    grid(   ax(2), 'on');
    set(    ax(2), 'XMinorGrid', 'on', 'YMinorGrid', 'on');
   
    claLegend   = {};
    allID       = {result:ID};
    allFreq     = [result.freq];
    allCdyn     = [result.cdyn];
    allDelta    = [result.delta];
   
   for par = ['meas' parvars]        
        indPar0     = find(ismember(allID, par{1}));
        if isempty(indPar0), continue, end
       
        [~, indsrt] = sort(allFreq(indPar0));
        indPar1     = indPar0(indsrt);
       
% Markierung für Messung
   if strcmp(par{1}, 'meas')
            fmt     = {'x-'};
        else
            fmt     = {};
        end
%dynamische Steifigkeit plotten
   plot(ax(1), allFreq(indPar1),        allCdyn(indPar1),  fmt{:});

%Verlustwinkel plotten
   plot(ax(2), allFreq(indPar1), 180/pi*allDelta(indPar1), fmt{:});

%Legende
   claLegend{end+1} = par{1};
   end
   
   
% Formatierung erster plot
   title(   ax(1), sprintf('%s', strHall));
   legend(  ax(1), claLegend);
      %    xlim(    ax(1), [ -1  +1]);
      %    ylim(    ax(1), [-50 +50]);
   xlabel(  ax(1), 'f [Hz]');
   ylabel(  ax(1), 'c_{dyn} [kN/mm]');
   
% Formatierung zweiter plot
   title(   ax(2), sprintf('%s', strHall));
   legend(  ax(2), claLegend);
      %    xlim(    ax(2), [ -1  +1]);
      %    ylim(    ax(2), [-50 +50]);
   xlabel(  ax(2), 'f [Hz]');
   ylabel(  ax(2), '\delta_{loss} [°]');
   
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 02.11.2017, 18:19     Titel:
  Antworten mit Zitat      
Hat sich erledigt. Hab den Fehler gefunden.

Gruss kwd46056
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.849
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.11.2017, 18:39     Titel:
  Antworten mit Zitat      
Zitat:
Hat sich erledigt. Hab den Fehler gefunden.

Gruss kwd46056


Nett wäre wenn dazu schreiben würdest, was eigentlich falsch war. Damit die andere, welche auch ähnliche Probleme haben, das auch sehen können.
Dort ist der Doppelpunkt einfach falsch an der Stelle(typischer Syntaxfehler weil man sich vertippt hat), da du auf Struct-Felder zugreifen möchtest muss dort statt Doppelpunkt ein Punkt sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
kwd46056
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 27.10.17
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 02.11.2017, 18:44     Titel:
  Antworten mit Zitat      
Hallo denny, da hast du absolut recht sorry.
Genau der Doppelpunkt war der Fehler

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


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.