如何解决Matlab中常量值和依赖参数的单独定义
在我的代码中,我有很多常量值和参数在我的代码中占据了很大的空间。
例如在 C++ 中,我会制作一个标头和一个单独的文件,我将这些参数定义为例如“const-type
”,并与 main 或 other 共享标头。 cpp 文件。
你如何在 MATLAB 中保持这种结构化,值得吗?
示例:Coefficients.m 如下所示:
classdef coefficients
properties(Constant)
% NIST data
A_N = 28.98641;
end
end
function Gas()
clear all
clc
import Coefficients.* % Does not work
% A simple print
Values.A_N % Does not work
coefficients.A_N % Does not work
Constant.A_N % Does not work
end
解决方法
好的,假设类 coefficients
定义为:
classdef coefficients
properties(Constant)
% NIST data
A_N = 28.98641;
end
end
这段代码必须保存在一个名为coefficients.m
的文件中(类名和文件名必须匹配以避免有时出现奇怪的效果)。
然后假设以下 Gas.m
文件:
function Gas()
% Usage with "disp()"
disp('The A_N coefficient taken from NIST data is:')
disp(coefficients.A_N)
% Usage with fprintf
fprintf('\nFrom NIST data,the coefficient A_N = %f\n',coefficients.A_N)
% Usage in calculation (just use it as if it was a variable/constant name
AN2 = coefficients.A_N^2 ;
fprintf('\nA_N coefficient squared = %.2f\n',AN2)
% If you want a shorter notation,you can copy the coefficient value in
% a variable with a shorter name,then use that variable later in code
A_N = coefficients.A_N ;
fprintf('\nA_N coefficient cubed = %.2f\n',A_N^3)
end
然后运行这个文件(从命令行调用它)产生:
>> Gas
The A_N coefficient taken from NIST data is:
28.98641
From NIST data,the coefficient A_N = 28.986410
A_N coefficient squared = 840.21
A_N coefficient cubed = 24354.73
或者如果您只需要在 Matlab 控制台中访问系数:
>> coefficients.A_N
ans =
28.98641
现在所有这些例子都假设类文件 coefficient.m
在当前的 Matlab 范围内是可见的。对于 Matlab,这意味着该文件必须在 MATLAB 搜索路径中(或者当前文件夹也可以)。
有关什么是 Matlab 搜索路径及其工作原理的更多信息,您可以阅读:
在您的情况下,我会创建一个包含所有这些类的文件夹,然后将此文件夹添加到 Matlab 路径中,这样您就不必再担心单个脚本、函数或程序调用它了。
,有关为此使用类定义的提示,请参阅 this link。提示的重点是:
- 可以直接访问属性获取值
- 可以添加属性来给出常数的单位(强烈建议!)
- 可以添加注释作为常量的帮助文本
- doc 命令会自动为这个 classdef 创建一个参考页面
例如,
2
3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。