Verfasst am: 25.06.2020, 11:04
Titel: Fehler beim erstellen einer Funktion aus Daten von Excel
Hallo zusammen,
ich habe eine Tabelle mit Messdaten aus Excel importiert.
x ist Spalte 1 mit Zeit und y ist Spalte 2 mit den Messwerten.
Wenn ich die Daten plotten lasse, funktioniert es: plot(x,y);
Wenn ich die Daten aber in eine Funktion schreiben will f(x)=y;
dann gibt er mir folgenden Fehler aus:
"Subscript indices must either be real positive integers or logicals."
Ich verstehe den Fehler und wenn ich eine Testtabelle mir ganzen Zahlen erstelle, funktioniert es auch. Aber es muss doch eine Möglichkeit geben, das Ganze mit Kommazahlen zu machen.
Ich möchte das machen, um später mit der Funktion f weiter arbeiten zu können.
Will damit eine Fast Fourier-Transformation machen g=fft(f);
poste bitte deinen konkreten Code, am besten mit einem Datenbeispiel.
f(x)=y;
ist in MATLAB keine sinnvolle Anweisung. Vermutlich gibst du in MATLAB etwas anderes ein, aber die entscheidende Frage ist dann: was?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
%% Import data from spreadsheet
% Script for importing data from the following spreadsheet:
%
% Workbook: C:\Users\janst\Google Drive\H-BRS\7. Semester\Bachelorarbeit\Vibrationsmessung\M1.xlsx
% Worksheet: Tabelle1
%
% Auto-generated by MATLAB on 25-Jun-2020 14:05:03
%% Setup the Import Options and import the data
opts = spreadsheetImportOptions("NumVariables", 2);
% Specify sheet and range
opts.Sheet = "Tabelle1";
opts.DataRange = "A1:B5";
verwenden. Eine Funktion in dem Sinn ist das ja nicht, da du nur ein paar Datenpunkte hast.
Wenn durch die Datenpunkte z.B. eine Exponentialfunktion gelegt werden soll, dann würde ich deren Parameter mit
lsqcurvefit
oder ähnlichem schätzen. Diese Funktion kann man dann auch mit plotten.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ich möchte wie oben schon geschrieben mit "f" noch weiter rechnen.
Was genau möchtest du mit f machen?
Solange du "nur" Datenpunkte hast, ist das keine Funktion - egal wie viele Datenpunkte du hast.
Einen Vorschlag, wie du eine Funktion bekommen kannst, habe ich dir bereits gemacht. Eine Alternative kann Interpolation sein (
interp1
).
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
%% Import data from spreadsheet % Script for importing data from the following spreadsheet:
%
% Workbook: C:\Users\janst\Google Drive\H-BRS\7. Semester\Bachelorarbeit\Vibrationsmessung\M1.xlsx % Worksheet: Tabelle1
%
% Auto-generated by MATLAB on 26-Jun-2020 09:53:09
%% Setup the Import Options and import the data
opts = spreadsheetImportOptions("NumVariables", 5);
% Specify sheet and range
opts.Sheet = "Tabelle1";
opts.DataRange = "A2:E25601";
% Import the data
M1 = readtable("C:\Users\janst\Google Drive\H-BRS\7. Semester\Bachelorarbeit\Vibrationsmessung\M1.xlsx", opts, "UseExcel", false);
t = M1.Zeit;
Signal = M1.g;
dt=t(2)-t(1); % Schrittweite
Fa = 1 / dt; % Abtastfrequenz
Fg = Fa / 2; % Grenzfrequenz, hier wird das Spektrum gespiegelt
n = length(Signal); % Laenge des Signals
FFT_Signal = fft(Signal,n)/n; % Fast Fourier Transformation
f=(0:floor(n/2))/(n*dt); %Frequenzachse bis zur Grenzfrequenz
plot(f,FFT_Signal(1:length(f)));
ich kann ja nun mangels Daten kein Bild sehen. Du müsstest also schon genauer sagen: was bekommst du, was erwartest du stattdessen?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.