gpt4 book ai didi

java - 使用 javaoctave 处理断管过程

转载 作者:行者123 更新时间:2023-12-02 05:41:35 24 4
gpt4 key购买 nike

嗨,我正在使用 javaoctave 包与我的计算机上的 Octave 桥接以执行一些计算。但是我在编译的时候遇到了如下错误:

error: save: Unrecognized option '-'
Exception in thread "main" dk.ange.octave.exception.OctaveIOException: IOException during close
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at dk.ange.octave.exec.OctaveExec.reInstantiateException(OctaveExec.java:184)
at dk.ange.octave.exec.OctaveExec.getFromFuture(OctaveExec.java:165)
at dk.ange.octave.exec.OctaveExec.eval(OctaveExec.java:142)
at dk.ange.octave.io.OctaveIO.get(OctaveIO.java:75)
at dk.ange.octave.OctaveEngine.get(OctaveEngine.java:161)
at dk.ange.octave.OctaveEngine.get(OctaveEngine.java:176)
at learn.capability.CapabilityMeanVarianceEquation.learnCapabilities(CapabilityMeanVarianceEquation.java:214)
at learn.graph.SimulatedAnnealingLearner.learnSynergyGraph(SimulatedAnnealingLearner.java:69)
at parse.basketball.runner.GetPlayerFrequency.learnSynergyGraph(GetPlayerFrequency.java:112)
at parse.basketball.runner.GetPlayerFrequency.main(GetPlayerFrequency.java:96)
Caused by: dk.ange.octave.exception.OctaveIOException: IOException during close
at dk.ange.octave.exec.OctaveReaderCallable.call(OctaveReaderCallable.java:65)
at dk.ange.octave.exec.OctaveReaderCallable.call(OctaveReaderCallable.java:28)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
Caused by: java.io.IOException: Pipe to octave-process broken
at dk.ange.octave.exec.OctaveExecuteReader.read(OctaveExecuteReader.java:68)
at java.io.Reader.read(Reader.java:123)
at dk.ange.octave.exec.OctaveExecuteReader.close(OctaveExecuteReader.java:96)
at dk.ange.octave.exec.OctaveReaderCallable.call(OctaveReaderCallable.java:61)
... 6 more

我不确定我是如何遇到这个错误的。不过,我仔细检查了我的输入,所以我认为这没有任何问题。我使用的程序之前已经成功运行过。

希望有人帮忙,谢谢!

最佳答案

这与某些 Octave 版本中存在的“错误”有关,其中不考虑“保存”命令的“-”选项。这可能在 Octave 的更高版本中得到修复,但在此之前您可以像这样修改 JavaOctave:

DataReadFunctor.doReads(final Reader reader)中,注释掉以下几行:

//        final String createByOctaveLine = readerReadLine(bufferedReader);
// if (createByOctaveLine == null || !createByOctaveLine.startsWith("# Created by Octave")) {
// throw new OctaveParseException("Not created by Octave?: '" + createByOctaveLine + "'");
// }

OctaveIO.get(final String name) 中,编辑以下行:

final WriteFunctor writeFunctor = new ReaderWriteFunctor(new StringReader("save -text - " + name));

对此:

final WriteFunctor writeFunctor = new ReaderWriteFunctor(new StringReader("save -text /dev/stdout " + name));

这些更改应该可以解决该问题,或者至少让您朝着正确的方向前进,但我不建议将其作为补丁,因为该错误实际上存在于 Octave 的某些版本中(“保存”的文档确实指出了这一点) '-' 是输出到终端而不是文件的有效选项)

关于java - 使用 javaoctave 处理断管过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com