簡體   English   中英

將文件名作為命令行參數傳遞給GNU Octave腳本

[英]Pass a file name as a command line argument to GNU Octave script

在可執行的Octave腳本中,我想傳遞包含矩陣的文件的名稱,並使gnu octave將該文件信息作為矩陣加載。 我怎么做?

這是腳本應該是什么樣子

#! /usr/bin/octave -qf

arg_list = argv()

filename = argv{1} % Name of the file containing the matrix you want to load

load -ascii filename % Load the information

傳遞的文件將是一個矩陣,其中包含任意大小的矩陣,例如2x3

1 2 3
5 7 8

在命令行,腳本應該以./myscript mymatrixfile運行,其中mymatrixfile包含矩陣。

這是我嘗試執行上面用八度音程編寫的腳本時得到的

[Desktop/SCVT]$ ./octavetinker.m generators.xyz                                                                             (05-14 10:41)
arg_list =

{
  [1,1] = generators.xyz
}

filename = generators.xyz
error: load: unable to find file filename
error: called from:
error:   ./octavetinker.m at line 7, column 1

[Desktop/SCVT]$  

generators.xyz是包含我需要的矩陣的文件

這應該工作:

#!/usr/bin/octave -qf

arg_list = argv ();
filename = arg_list{1};
load("-ascii",filename);

當您編寫行load filename您指示加載函數加載文件名“filename”。 也就是說,你做了相當於load('filename');的事情load('filename');

在MATLAB和Octave中,函數“foo”后跟一個空格,然后單詞“bar”表示bar將作為字符串提交給foo。 即使bar是工作空間中的已定義變量,也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM