[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Constants in functions?

From: Windhorn, Allen E [ACIM/LSA/MKT]
Subject: Constants in functions?
Date: Thu, 5 Mar 2020 18:12:11 +0000

What's the accepted way to define a constant inside a function?  Example:
function [sc, err] = symmcomp(abc)
  % Function accepts [abc] complex components and delivers symmetrical
  % components as a vector [x0, x1, x2] of complex values
  persistent a = complex(-0.5, sqrt(3)/2);    % Rotation vector
  % Build conversion matrix_type (constant)
  persistent A = [1, 1, 1;
                1, a, a^2;
                1, a^2, a]./3;
  % Make abc a column vector
  if (length(abc)>3)
    sc = [];
    err = "Too many components!";
  elseif (length(abc)<3)
    sc = [];
    err = "Too few components!";
    abc = reshape(abc,[3,1]);
    sc = A*abc;
    err = "";

Here a is a constant and A is a constant matrix.  I used persistent in hopes
it would prevent them from being redefined every time the function is called.
In C++ I would use the "const" keyword.

Allen Windhorn P.E. (Mn), CEng| Senior Principal Engineer
Leroy-Somer Americas | Kato Engineering, Inc.
2075 Howard Dr. West | North Mankato, MN 56003 | USA
T +1 507-345-2782 | F +1 507-345-2798
address@hidden | address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]