Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> MATLAB

MATLAB Functies: Definitie, Werkruimte, In- en Outputs

Een functie is een groep statements die samen een taak uitvoeren. In MATLAB worden functies gedefinieerd in afzonderlijke bestanden. De bestandsnaam en functienaam moeten identiek zijn.

Functies werken op variabelen in hun eigen werkruimte (locale werkruimte), gescheiden van de basiswerkruimte van de command prompt.

Functies kunnen meerdere invoer- en uitvoerargumenten hebben.

Syntax van een Functie

function [out1,out2,...,outN] = myfun(in1,in2,in3,...,inN)

Voorbeeld: Functie mymax

Bestand: mymax.m

function max = mymax(n1, n2, n3, n4, n5)
% Deze functie berekent het maximum van vijf getallen
max = n1;
if n2 > max; max = n2; end
if n3 > max; max = n3; end
if n4 > max; max = n4; end
if n5 > max; max = n5; end
end

De eerste regel begint met function. Commentaarregels direct na de functiedeclaratie vormen de helptekst.

help mymax
% This function calculates the maximum of the five numbers given as input

Functie aanroepen:

mymax(34, 78, 89, 23, 11)
% ans = 89

Anonieme Functies

Anonieme functies zijn inline functies gedefinieerd in één statement. Ze vereisen geen apart bestand.

f = @(arglist)expression

Voorbeeld: Machtsfunctie

power = @(x, n) x.^n;
result1 = power(7, 3)      % 343
result2 = power(49, 0.5)   % 7
result3 = power(10, -10)   % 1e-10
result4 = power(4.5, 1.5)  % 9.5459

Primaire en Sub-functies

Elk functiebestand bevat een verplichte primaire functie (eerste) en optionele sub-functies. Sub-functies zijn alleen zichtbaar binnen het bestand.

Voorbeeld: Kwadratische Vergelijking met Sub-functie

Bestand: quadratic.m

function [x1,x2] = quadratic(a,b,c)
% Returns roots of quadratic equation
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

function dis = disc(a,b,c)
% Sub-functie: berekent discriminant
dis = sqrt(b^2 - 4*a*c);
end

Aanroep: quadratic(2,4,-4) → ans = 0.7321

Geneste Functies

Functies gedefinieerd binnen een andere functie. Ze delen de werkruimte van de omvattende functie.

Voorbeeld: Geneste disc Functie

Bestand: quadratic2.m

function [x1,x2] = quadratic2(a,b,c)
function disc
    d = sqrt(b^2 - 4*a*c);
end
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

Private Functies

Private functies zijn primair functies zichtbaar alleen voor functies in de parent map. Ze staan in een submap genaamd private.

Voorbeeld

Maak map private met disc.m:

function dis = disc(a,b,c)
dis = sqrt(b^2 - 4*a*c);
end

Hoofdfunctie quadratic3.m in werkmap:

function [x1,x2] = quadratic3(a,b,c)
d = disc(a,b,c);  % roept private functie aan
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

Globale Variabelen

Globale variabelen worden gedeeld tussen functies. Declareren met global in alle betrokken functies en optioneel in basiswerkruimte.

Voorbeeld

Bestand average.m:

function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end

Script:

global TOTAL; TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)  % 35.5

MATLAB

  1. 10 Essentiële Insight-functies voor het optimaliseren van Stratasys FDM-printen
  2. C++ Functies Uitgelegd met Praktische Codevoorbeelden
  3. C-functies: Structuur, declaratie, aanroep en argumenten
  4. Verilog-functies beheersen voor efficiënt RTL-ontwerp
  5. MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
  6. Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
  7. Essentiële MATLAB Commando's voor Efficiënte Berekening
  8. MATLAB Datatypes: Uitgebreide Gids
  9. MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
  10. MATLAB Getallen: Typen, Opslag en Conversie
  11. Python lambda-functies beheersen: praktische voorbeelden & best practices