gpt4 book ai didi

macos - Matlab命令行-某些程序在退出时崩溃

转载 作者:行者123 更新时间:2023-12-03 16:41:27 26 4
gpt4 key购买 nike

当我尝试从命令行退出某些Matlab脚本时,或者当我在脚本中放置“退出力量”时,它们都会崩溃。 (奇怪的是,我无法确定是什么导致某些程序崩溃而有些没有崩溃。)这是一个非常简单的Matlab程序(bugtest.m),在Mac OS上可以显示此行为:

function bugtest(ifile, ofile)
data = csvread(ifile, 1, 0); % skip the first line
csvwrite(ofile, data);
end

当我从命令行对这个脚本进行Matlab编程,然后在得到Matlab提示时键入exit,它可以正常工作:
bash> /Applications/MATLAB_R2018b.app/bin/matlab -nodisplay -nojvm -r "bugtest('z2.csv','z3.csv')"

[Matlab copyright message]

>> exit
exit

但是,当我在命令行中包含退出时,它会崩溃(取决于脚本,但是脚本bugtest.m总是崩溃):
bash> /Applications/MATLAB_R2018b.app/bin/matlab -nodisplay -nojvm -r "bugtest('z2.csv','z3.csv');exit"

[Matlab copyright message]

--------------------------------------------------------------------------------
Segmentation violation detected at Thu Aug 22 15:55:40 2019 +0930
--------------------------------------------------------------------------------

Configuration:
Crash Decoding : Disabled - No sandbox or build area path
Crash Mode : continue (default)
[etc]

如果在bugtest.m中存在“退出力量”,则会发生相同的情况。而且其他Matlab脚本也可以从命令行正常运行。

此问题的原因是什么,如何解决?

最佳答案

在我看来,这似乎是一个计时问题,其中一个线程仍在完成对文件的写入,而另一个线程开始中断运行时。我说这是因为,当手动键入exit时,运行csvwrite之后已经过去了一段时间,并且不会发生该错误。

可以通过在调用pause(1)之前添加一个小的暂停(例如exit)来在脚本中模拟这种情况。

显然,这是一个错误,应该报告给MathWorks,以便他们进行修复。

关于macos - Matlab命令行-某些程序在退出时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57618313/

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