如何在MATLAB中运行一个八度命令行程序

时间:2011-04-05 17:12:32

标签: command-line octave matlab

我刚刚下载了Octave(和MATLAB)兼容版的Multi-Camera Self-Calibration工具箱。它有一个内置的检查和自述文件中的一个部分,它说明运行该检查时的预期值。

以下命令行启动内置检查:

octave gocal.m --config=../strawlab/test-data/DATA20100906_134124/no-global-iterations.cfg

readme开始,有一节说明运行该检查的结果是什么,以及最终结果是什么。

我的问题是,与自述文件中提到的值相比,我的价值略有不同。我是否有可能得到这些差异(如像素错误的0.62对0.70),因为我使用的是Octave的win32版本,而不是原生的linux版本?

我的另一个更重要的问题是如何从MATLAB运行此脚本(gocal.m)?此脚本有一个部分,它从命令行参数--config =获取配置文件名。无论我如何尝试从MATLAB运行此脚本,它总是告诉我argv中缺少某些东西。

代码如下:

function [config] = read_configuration(filename)

if nargin == 0
  % No argument given -- look for --config= on the command-line.
  found_cfg = 0;
  for cmdline_arg = argv()
    arg = cmdline_arg{1}
    szarg = size(arg);
    if szarg(2) >= 10
      if strcmp(arg(1:9), '--config=')
        found_cfg = 1;
        filename = arg(10:size(arg,2));
      end
    end
  end
  if ~found_cfg
    error('missing --config=FILENAME command-line argument');
  end
end

您能告诉我如何传递argv()的给定数据,并使用--config =选项启动所需的脚本吗?

  1. 来自MATLAB GUI ,使用run gocal ...
  2. 来自命令行,使用matlab -r gocal ...?

1 个答案:

答案 0 :(得分:1)

argv是一个八度主义。你有两个选择:

  1. 将配置文件作为参数传递给gocal,假设gocal支持该参数。
  2. 编写名为“argv”的函数,返回'--config ...'。