如何从八度列表中安装很多包?
How to install a lot of packages from a list in octave?
我想以自动方式安装一些软件包,我尝试使用简单的 for 循环来完成此操作。如下所示。
pkgs = '../pkgs';
names = dir(fullfile(pkgs, '*.tar.gz'));
n = numel(nomes);
for i = 1:n
pkg install names(n).name
end
这是第一次尝试 returns 我这 8 次
warning: file names(n).name does not exist
我正在寻找一种方法来获取 names.name 的 ans
值。
MATLAB 和 Octave 都允许
的简单语法
functionname arg1 arg2 ...
通过将其转换为正确的函数调用
functionname('arg1','arg2',...);
这意味着为了将变量的 value 作为参数传递(而不是变量 names 本身),您必须使用函数形式:
pkgs = '../pkgs';
names = dir(fullfile(pkgs, '*.tar.gz'));
n = numel(names); %// fixed your typo here
for k = 1:n
pkg('install',names(k).name) %// changed here, also n -> i -> k
end
请注意,您有两个错别字:names
在第 3 行写成了 nomes
(可能是翻译问题),更重要的是,您使用的是 n
而不是 i
在循环中。事实上,不要在 Octave 中使用 i
作为变量:它代表虚数单位,如果您不小心,可能会导致细微的错误。上面代码我改成了k
您可以使用 'glob()' 获取 tarball 列表,然后调用 pkg()
来安装所有这些,而不是所有这些代码。像这样:
fpaths = glob ("pkgs/*.tar.gz");
pkg ("install", fpaths{:});
我想以自动方式安装一些软件包,我尝试使用简单的 for 循环来完成此操作。如下所示。
pkgs = '../pkgs';
names = dir(fullfile(pkgs, '*.tar.gz'));
n = numel(nomes);
for i = 1:n
pkg install names(n).name
end
这是第一次尝试 returns 我这 8 次
warning: file names(n).name does not exist
我正在寻找一种方法来获取 names.name 的 ans
值。
MATLAB 和 Octave 都允许
的简单语法functionname arg1 arg2 ...
通过将其转换为正确的函数调用
functionname('arg1','arg2',...);
这意味着为了将变量的 value 作为参数传递(而不是变量 names 本身),您必须使用函数形式:
pkgs = '../pkgs';
names = dir(fullfile(pkgs, '*.tar.gz'));
n = numel(names); %// fixed your typo here
for k = 1:n
pkg('install',names(k).name) %// changed here, also n -> i -> k
end
请注意,您有两个错别字:names
在第 3 行写成了 nomes
(可能是翻译问题),更重要的是,您使用的是 n
而不是 i
在循环中。事实上,不要在 Octave 中使用 i
作为变量:它代表虚数单位,如果您不小心,可能会导致细微的错误。上面代码我改成了k
您可以使用 'glob()' 获取 tarball 列表,然后调用 pkg()
来安装所有这些,而不是所有这些代码。像这样:
fpaths = glob ("pkgs/*.tar.gz");
pkg ("install", fpaths{:});