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

Fehler bei surf 4D: CData must be an M-by-N matrix or M-by-N

 

Johannes87
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 23.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2013, 12:39     Titel: Fehler bei surf 4D: CData must be an M-by-N matrix or M-by-N
  Antworten mit Zitat      
Hallo,

ich habe einen einfachen Code und möchte eigentlich nur die Formel grafisch darstellen lassen, da mir die Varianten aus dem Programm der statistischen Versuchsplanung nicht gefallen.

Code:

clear
clc

m=linspace(75,95);%Masse
f=linspace(20,30);%Frequenz
s=linspace(1,3);%Strecke

[M,F,S]=meshgrid(m,f,s);

%Ergebnisformel der Statistischen Versuchsplanung
A=100.7-...
    0.1862*M+0.4075*F+0.9375*S+...
    0.001125*M.^2-0.0055*F.^2-0.0375*S.^2-...
    0.0005*M.*F+0.0025*M.*S-0.035*F.*S;
%Oberflächenplot
surf(M,F,S,A)
 


Am liebsten wäre mir erst einmal ein Oberflächenplot, leider kommt dabei folgende Fehlermeldung:
Code:

??? CData must be an M-by-N matrix or M-by-N-by-3 array

Error in ==>
graph3d.surfaceplot.surfaceplot>localConstructor at 136
h = graph3d.surfaceplot(argin{:});

Error in ==> graph3d.surfaceplot.surfaceplot at 7
h = localConstructor(varargin{:});

Error in ==> surf at 93
    hh =
    double(graph3d.surfaceplot(args{:},'parent',parax));
   
Error in ==> matlab_abrieb at 13
surf(M,F,S,A)


Könntet Ihr mir bitte helfen?

Danke Johannes
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.10.2013, 12:55     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung ist doch aussagekräftig. Vergleiche die Dimensionen deiner Matrix mit den angegebenen, und du wirst sehen, dass das nicht übereinstimmt.

Vor allem aber ist ein Oberflächenplot zumindest für mich, dass eine Größe in Abhängigkeit von zwei anderen dargestellt wird. Bei dir sind es aber drei andere Größen. Wie genau stellst du dir das vor?

Eine Möglichkeit wäre Volumenvisualisierung, aber das sind komplett andere Befehle.
http://www.mathworks.de/de/help/matlab/volume-visualization.html

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 23.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2013, 13:13     Titel:
  Antworten mit Zitat      
Danke schon einmal, aber ich dachte durch linspace wird der Bereich auf 100 Punkte zwischen den Bereichen geteilt.

Wenn ich scatter3 nehme sagt Matlab mir, dass X,Y,Z nicht die gleiche Länge haben.

Könnt ihr mir bitte sagen, wie ich den Fehler verbessern kann?

Danke

Johannes
Private Nachricht senden Benutzer-Profile anzeigen
 
Johannes87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 23.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2013, 13:17     Titel:
  Antworten mit Zitat      
Achso: ich würde gerne die drei Variablen plotten und das Ergebnis der Funktion durch Farben darstellen.

Das quasi im scatterplot ein bunter würfel entsteht, wo man direkt eine Übersicht hat, in welchen Bereichen sich ein Optimum befindet etc...

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.10.2013, 14:50     Titel:
  Antworten mit Zitat      
Hallo,
Zitat:

aber ich dachte durch linspace wird der Bereich auf 100 Punkte zwischen den Bereichen geteilt.

Das stimmt soweit, aber das ist ja auch nicht das Problem mit surf - s.o.

Zitat:
Wenn ich scatter3 nehme sagt Matlab mir, dass X,Y,Z nicht die gleiche Länge haben.

Wie wendest du scatter3 an? Für scatter3 brauchst du 3-4 Vektoren, nicht Gittermatrizen.

Möchtest du so etwas wie im Beispiel von
Code:

?
Dann müsstest du dich ja "nur" an das Beispiel halten.

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