startup.m中的变量声明不在MATLAB中工作
我试图声明一些我需要在每个脚本中访问的幻数常量。我在startup.m中的变量声明不在MATLAB中工作,matlab,startup,Matlab,Startup,我试图声明一些我需要在每个脚本中访问的幻数常量。我在my\u path中创建了一个文件load\u constants.m,看起来像: magic_number = 10; other_magic_number = 12; 我的startup.m如下所示: % add a bunch of packages addpath ~/Documents/MATLAB/some-package userpath(my_path) load_constants 但是,当我尝试在命令窗口中访问magi
my\u path
中创建了一个文件load\u constants.m
,看起来像:
magic_number = 10;
other_magic_number = 12;
我的startup.m
如下所示:
% add a bunch of packages
addpath ~/Documents/MATLAB/some-package
userpath(my_path)
load_constants
但是,当我尝试在命令窗口中访问magic_number
时:
Undefined function or variable 'magic_number'.
直接在
startup.m
中声明变量也不起作用。如何修复此问题?这是正常行为,startup.m
是一个函数,函数中声明的变量是该函数的局部变量(然后在超出范围时消失):
使用该功能可使magic_number
从base
工作区可见:
function [] = startup()
%[
assignin('base', 'magic_number', 10); % This value will be visible from 'base' workspace
%]
请注意,要使magic_number
值不仅对脚本可见,而且对函数也可见,最好创建magic_number.m
函数并将其添加到路径:
function [v] = magic_number()
%[
v = 10;
%]
无需括号即可调用(即,与变量语法相同)您的
startup.m
是否位于MATLAB的当前目录中?感谢您的澄清。早些时候,函数似乎过于笨拙,但我意识到这可能是最好的选择。我把它们都放在一个Constants
文件夹中,并将其添加到我的路径中。根据用户发布的代码,它是一个脚本,而不是一个函数。
function [v] = magic_number()
%[
v = 10;
%]