Matlab 八度输入函数
我正在用八度音阶运行matlab代码。我想导入函数不是在核心八度音阶中实现的。知道如何在八度音程中使用这个matlabe函数吗 以下是我所拥有的: 倍频程-3.4.0:7>设置 导入程序包: brml* 警告:“导入”函数尚未在倍频程中实现 请阅读“学习如何 贡献缺少的功能Matlab 八度输入函数,matlab,function,import,octave,Matlab,Function,Import,Octave,我正在用八度音阶运行matlab代码。我想导入函数不是在核心八度音阶中实现的。知道如何在八度音程中使用这个matlabe函数吗 以下是我所拥有的: 倍频程-3.4.0:7>设置 导入程序包: brml* 警告:“导入”函数尚未在倍频程中实现 请阅读“学习如何 贡献缺少的功能 错误:'import'在第8行第5列附近未定义您可以自定义import.m。发件人: 您是否可以将您的代码张贴在使用导入功能的位置?是否也可以从Scilab/ScosLab中使用导入功能?我正在努力解决这个问题。 funct
错误:'import'在第8行第5列附近未定义您可以自定义import.m。发件人:
您是否可以将您的代码张贴在使用
导入
功能的位置?是否也可以从Scilab/ScosLab中使用导入功能?我正在努力解决这个问题。
function import(varargin)
error(nargchk(1, inf, nargin, "struct"));
for i=1:nargin
[names, funcs] = import1(varargin{i});
for j=1:length(names)
assignin("caller", names{j}, funcs{j});
endfor
endfor
endfunction
function [names, funcs] = import1(pkgname)
pkgname_parts = strsplit(pkgname, ".");
if length(pkgname_parts) > 2
error("invalid package name: %s", pkgname);
endif
pkgpath = locatepkg(pkgname_parts{1});
unwind_protect
cwd = pwd;
cd(pkgpath);
names = what(pwd);
names = {names.m{:}, names.mex{:}, names.oct{:}};
names = cellfun(@stripExtension, names, "UniformOutput", false);
if length(pkgname_parts) == 2
if any(strcmp(pkgname_parts{2}, names))
names = {pkgname_parts{2}};
else
error("function `%s' not found in package `%s'", ...
pkgname_parts{2}, pkgname_parts{1});
endif
endif
funcs = cellfun(@str2func, names, "UniformOutput", false);
unwind_protect_cleanup
cd(cwd);
end_unwind_protect
endfunction
function pkgpath = locatepkg(pkgname)
pathdirs = strsplit(path, pathsep);
for iPath=1:length(pathdirs)
pkgpath = [pathdirs{iPath} filesep "+" pkgname];
if exist(pkgpath, "dir")
return;
endif
endfor
error("package `%s' cannot be located in the path", pkgname);
endfunction
function fileName = stripExtension(fileName)
dotIndices = strfind(fileName, ".");
fileName = fileName(1:(dotIndices(end)-1));
endfunction