Octave拒绝处理我传递给csvread()的字符串
因此,我正在编写一个倍频程脚本(我对该语言相对缺乏经验),并尝试打开两个csv文件,将其名称作为命令行参数传递给脚本。这是我的剧本:Octave拒绝处理我传递给csvread()的字符串,octave,Octave,因此,我正在编写一个倍频程脚本(我对该语言相对缺乏经验),并尝试打开两个csv文件,将其名称作为命令行参数传递给脚本。这是我的剧本: #!/usr/bin/env octave function plotregs(fig, regs) figure(fig); title('Foo'); xlabel('Value'); ylabel('Cycle #'); grid on; plot(rows(regs
#!/usr/bin/env octave
function plotregs(fig, regs)
figure(fig);
title('Foo');
xlabel('Value');
ylabel('Cycle #');
grid on;
plot(rows(regs(:, 1)), regs(:, 1),
rows(regs(:, 2)), regs(:, 2),
rows(regs(:, 3)), regs(:, 3),
rows(regs(:, 4)), regs(:, 4),
rows(regs(:, 5)), regs(:, 5),
rows(regs(:, 6)), regs(:, 6),
rows(regs(:, 7)), regs(:, 7),
rows(regs(:, 8)), regs(:, 8));
legend('A', 'B', 'C', 'D', 'E', 'F', 'H', 'L');
endfunction
args = argv ();
filename = strcat(cellstr(args(1)));
typeinfo filename
regs = csvread(filename);
graphics_toolkit("gnuplot");
plotregs(1, regs);
filename = strcat(cellstr(args(2)));
regs = csvread(filename);
plotregs(2, regs);
pause
下面是我运行脚本时得到的输出:
ans = sq_string
error: dlmread: FILE argument must be a string or file id
error: called from:
error: /usr/share/octave/3.4.3/m/io/csvread.m at line 34, column 5
error: /home/tnecniv/Code/Octave/regigraph/regigraph.m at line 25, column 6
任何建议都将不胜感激问题是您创建了一个可执行的八度脚本,该脚本需要参数,但不提供任何参数 首先,我将以
#!/usr/bin/octave -qf
然后可以按如下方式运行脚本:
$ ./myscript.sh datafile1.csv datafile2.csv
但在我看来,argv()的行为有点奇怪,因为当没有为(比如myscript.sh)提供参数时,它返回执行脚本的文件名,但当提供一个或多个参数时,它只包含参数
有关“可执行倍频程程序”,请参阅文档的第2.6节