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: Variable must be set by a non scalar operator

 

Beginner11111

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2018, 17:31     Titel: Fehler: Variable must be set by a non scalar operator
  Antworten mit Zitat      
Hallo,

bei folgenden Code kommt bei if a ~= 0 die im Titel genannte Meldung. Jemand eine Idee wieso und wie ich es umgehen kann?



Code:
x_1 = [0 1 0.5 1 0.5 0];
y_1 = [0 0 1 1 0 0.5];
z = [0 0 0 0 0 0];
T = [31 27.9 30 28.1 27 29];

%Aufbau Meshgrid
[X,Y] = meshgrid(0:0.05:1);
%Definition der Z-Ebenen
Z = X.*Y.*0;

T1 = (T(1,1) + T(1,2))./2;
T2 = (T(1,3) + T(1,4))./2;
T3 = (T(1,5) + T(1,6))./2;
%Koordinaten bestimmen
T1_X = x_1(1,1) + (x_1(1,2) - x_1(1,1))./2;
T1_Y = y_1(1,1) + (y_1(1,2) - y_1(1,1))./2;

T2_X = x_1(1,3) + (x_1(1,4) - x_1(1,1))./2;
T2_Y = y_1(1,3) + (y_1(1,4) - y_1(1,1))./2;

T3_X = x_1(1,5) + (x_1(1,6) - x_1(1,1))./2;
T3_Y = y_1(1,5) + (y_1(1,6) - y_1(1,1))./2;
%Aus den 3 Interpolierten Punkten Farbe bestimmen
%Koordinaten der Schnittpunkte
a = (X - T1_X).*X.*Y;
b = X.*0.*Y;
if a ~= 0  
m = (Y-T1_Y)./(X-T1_X);
else
m = 1000
end


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]


Harald
Forum-Meister

Forum-Meister


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

a scheint ein Vektor oder eine Matrix zu sein. Dann ist die Abfrage if a ~= 0 nicht sinnvoll, denn die Bedingung kann ja für manche Elemente erfüllt sein und für andere nicht.
Die Frage ist, was du denn genau machen willst. Vielleicht hilft logische Indizierung?
Code:
m = zeros(size(X));
m(a~=0) = % nicht-skalare Variablen mit a ~= 0 indizieren


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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
beginner11111

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2018, 21:37     Titel:
  Antworten mit Zitat      
danke für die Antwort.

also für die werte, für die die Bedingung gilt sollen mit dem ersten Teil berechnet werden, für die es nicht gilt, mit dem else Teil, also so war es gedacht
 
Harald
Forum-Meister

Forum-Meister


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

dann versuch es mal wie vorgeschlagen mit logischer Indizierung.

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