MATLAB2017b运行程序令MATLAB崩溃问题出现及解决

令MATLAB崩溃的log大致如下:

MATLAB crash file:C:\Users\11327\AppData\Local\Temp\matlab_crash_dump.4080-1:

。。。。此处省下很多log。。。

Abnormal termination:
Access violation

Register State (from fault):
  RAX = 0000000000000000  RBX = 0000000000000000
  RCX = 00000000fc621a20  RDX = 00000000043fada0
  RSP = 00000000043f9038  RBP = 00000000043f9ea1
  RSI = 00000000043fada0  RDI = 0000000000000048
 
   R8 = 00000000043f9f10   R9 = 00000000fc621a20
  R10 = 0000000000000000  R11 = 00000000043fada0
  R12 = 0000000000000001  R13 = 0000000000000000
  R14 = 00000000043fada0  R15 = 00000000fc621a20
 
  RIP = 0000000010a7fb57  EFL = 00010206

。。。。此处省下很多log。。。

This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.

If this problem is reproducible, please submit a Service Request via:
    http://www.mathworks.com/support/contact_us/

A technical support engineer might contact you with further information.

首先我觉得,是因为写程序的MATLAB版本和我现在使用的MATLAB版本不一样。

然后开始说解决:

老师看了 一眼说

%这个是我自己的工作目录,中间省了一大堆中间路径,反正就是最后这个文件有问题,需要重新编译。
E:\work\...\glmnet_matlab\glmnetMex.mexw64

这个文件出错了。需要mex命令重新编译。然后我就去寻找重新编译的方法。结果直接搜索重新编译命令,看不懂,也不知道该怎么改。赶紧查看mex文档学习mex命令。

简单看了命令后就编译。命令

mex filenames

果然编译出错了,出错信息:

错误使用 mex
文件扩展名 '.mexw64' 未知。然后找了同.F文件编译,然后重新出错,说我没有SDK编译器,但其实我是有的。

然后matlab运行已知的程序还是崩溃,目测根本不是因为程序里的图像处理导致内存溢出(图片不多,计算量也不是很大)。然后我放置了一段时间。在这段时间里,我用学校的电脑配置了matlab2019,然后运行那段已知的程序,然后matlab并没有发生崩溃错误,反而是正确运行,出现了正确的结果。所以这里基本可以判定此次matlab崩溃问题由matlab版本导致(具体的由matlab内部的什么东西导致的原因还未知)为了更进一步验证确实是matlab版本导致matlab崩溃,我在发生matlab崩溃的那台电脑上进行的操作。

首先程序保存,保留发生崩溃问题的状态。然后把2017版本卸载了,安装一个2019版本的matlab。最后直接打开程序运行,发现并没有发生matlab崩溃问题。so,完全验证了本文开头描述的问题,是由matlab本身导致。

完。

 

 

你可能感兴趣的:(matlab运行程序崩溃)