2012-05-14 60 views
9

在可執行的Octave腳本中,我想傳遞包含矩陣的文件的名稱,並使gnu八度將該文件信息加載爲矩陣。我怎麼做?將文件名作爲命令行參數傳遞給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 

在命令行腳本應該運行as ./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是包含我需要

回答

8

矩陣中的文件這應該工作:

#!/usr/bin/octave -qf 

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

當你寫了load filename你指定的加載函數加載文件名「文件名」。也就是說,你做了相當於load('filename');的事情。

在MATLAB和Octave中,函數「foo」後面跟着一個空格,那麼單詞「bar」表示bar將作爲字符串提交給foo。即使bar是工作區中的已定義變量,情況也是如此。

+0

MATLAB中對應的代碼是什麼? – Celik

相關問題