Matlab error: undefined function of variablele x
-
- Berichten: 213
Matlab error: undefined function of variablele x
Hallo,
Voor school moet ik een opdracht doen in Matlab, aangezien ik hier nog niet zo vaak mee gewerkt heb, is dit voor mij een aardig lastige klus. De opdracht is om een grafiek te tekenen met daarin de dwarskrachten en de buigende momenten.
We hebben een balk gekregen waar een aantal belastingen op werken (momenten, puntkrachten en verdeelde belastingen). In totaal heb ik 9 VLS'en getekend, en ik heb dus voor ieder VLS een waarde voor V(x) en M(x). Waarin met V(x) de dwarskrachten worden aangegeven en M(x) de buigende momenten.
Al deze formules heb ik in matlab ingevoerd en de gegeven variabelen heb ik ingevoerd.
Nu probeer ik dit programma te runnen, maar ik krijg constant de foutmelding: undefined function of variable 'x'.
Als voorbeeld heb ik hieronder weergegeven hoe ik het in matlab heb ingevoerd.
%VLS 1: LM1 tot LH1 (0 tot 6)
V(x) = 0;
M(x) = - M1;
%VLS 2: LH1 tot LM2 (6 tot 7)
V(x) = FA_y;
M(x) = FA_y*(x - LH1) - M1;
In de opdracht zijn wel het beginpunt (x0) en eindpunt (xend) van de balk gegeven
x0 = min([0,LF1])
xend = max([22,LF6])
Hoe moet ik nu de waarde voor x invoeren in matlab. Bij mij is volgens mij het beginpunt van de balk 0 en het eindpunt LF6 = 23. Moet ik dan dit domein invoeren in matlab, zo ja hoe?
Voor school moet ik een opdracht doen in Matlab, aangezien ik hier nog niet zo vaak mee gewerkt heb, is dit voor mij een aardig lastige klus. De opdracht is om een grafiek te tekenen met daarin de dwarskrachten en de buigende momenten.
We hebben een balk gekregen waar een aantal belastingen op werken (momenten, puntkrachten en verdeelde belastingen). In totaal heb ik 9 VLS'en getekend, en ik heb dus voor ieder VLS een waarde voor V(x) en M(x). Waarin met V(x) de dwarskrachten worden aangegeven en M(x) de buigende momenten.
Al deze formules heb ik in matlab ingevoerd en de gegeven variabelen heb ik ingevoerd.
Nu probeer ik dit programma te runnen, maar ik krijg constant de foutmelding: undefined function of variable 'x'.
Als voorbeeld heb ik hieronder weergegeven hoe ik het in matlab heb ingevoerd.
%VLS 1: LM1 tot LH1 (0 tot 6)
V(x) = 0;
M(x) = - M1;
%VLS 2: LH1 tot LM2 (6 tot 7)
V(x) = FA_y;
M(x) = FA_y*(x - LH1) - M1;
In de opdracht zijn wel het beginpunt (x0) en eindpunt (xend) van de balk gegeven
x0 = min([0,LF1])
xend = max([22,LF6])
Hoe moet ik nu de waarde voor x invoeren in matlab. Bij mij is volgens mij het beginpunt van de balk 0 en het eindpunt LF6 = 23. Moet ik dan dit domein invoeren in matlab, zo ja hoe?
- Berichten: 9.240
-
- Berichten: 213
Re: Matlab error: undefined function of variablele x
Oké bedankt! Kan matlab de formule niet gewoon uitdrukken in x.
Dat je bijvoorbeeld voor de momentformule M(x) = 3 + 6x krijgt.
- Berichten: 7.224
Re: Matlab error: undefined function of variablele x
Nee, matlab werkt alleen met numeriek waarden, niet met symbolische (uitgezonderd de Symbolic ToolBox).
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton
-
- Berichten: 213
Re: Matlab error: undefined function of variablele x
x = x0:.1:xend;
Als ik dit invoer in matlab, krijg ik steeds error. Ik heb x0 en xend als respectievelijk 0 en 23 gedefinieerd.
Doe ik iets verkeerd
- Berichten: 10.561
Re: Matlab error: undefined function of variablele x
Doe ik iets verkeerd
Ja, je vertelt niet welke error je krijgt.
Cetero censeo Senseo non esse bibendum
- Berichten: 2.097
Re: Matlab error: undefined function of variablele x
Je mag ook niet
schrijven.
M(x) betekent voor matlab ofwel dat je de functie 'M' oproept, waarbij je x meegeeft aan deze functie.
Ofwel is M een vector en haal je hieruit een of meerdere elementen, waarbij x de indices bevat van de elementen die je wil. In het laatste geval mag x enkel positieve gehele waarden bevatten natuurlijk.
Bij het definiëren van M moet je de haakjes dus weglaten.
Voorbeeldjes:
Als je nu M(i) opvraagt, krijg je het vijfde element van M terug, namelijk 15.
(Je kan dit ook rechtstreeks via M(5))
Als je nu M(i) opvraagt, krijg je de vijf eerste elementen van M terug in een vector, namelijk [10 11 12 13 14 15]
(ook dit gaat rechtstreeks door M(1:5) te typen)
En voor jouw code:
Kan je nu antwoorden hoe veel elementen M bevat en waaraan bijoorbeeld M(15) gelijk is?
Code: Selecteer alles
x=0:.1:23;
M(x) = 3 + 6x;
M(x) betekent voor matlab ofwel dat je de functie 'M' oproept, waarbij je x meegeeft aan deze functie.
Ofwel is M een vector en haal je hieruit een of meerdere elementen, waarbij x de indices bevat van de elementen die je wil. In het laatste geval mag x enkel positieve gehele waarden bevatten natuurlijk.
Bij het definiëren van M moet je de haakjes dus weglaten.
Voorbeeldjes:
Code: Selecteer alles
M=10:20;
i=5;
(Je kan dit ook rechtstreeks via M(5))
Code: Selecteer alles
M=10:20;
i=1:5;
(ook dit gaat rechtstreeks door M(1:5) te typen)
En voor jouw code:
Code: Selecteer alles
x=0:0.1:23;
M=FA_y*(x-LH1)-M1;
"Why must you speak when you have nothing to say?" -Hornblower
Conserve energy: Commute with a Hamiltonian
Conserve energy: Commute with a Hamiltonian