matlab程序为什么运行不起来?

matlab程序为什么运行不起来?,第1张

matlab程序为什么运行不起来?

其原因是没有自定义被积函数。即应为

func=@(x) exp(-x.^2).*log(x).^2

完整的代码:

>>func=@(x) exp(-x.^2).*log(x).^2

>>y=integral(func,0,Inf)

问题原因

出现此问题是由于Windows 的system32目录下两个DLL文件版本太低,这两个文件是SSLEAY32.DLL和LIBEAY32.DLL。

这两个文件在MATLAB安装目录的\bin\win64目录下也有,\bin\win64这个目录是在添加到了系统的PATH变量里了的。但是Matlab编译后的exe程序在运行时,system32目录有高的优先级,会使用system32目录下的这两个文件,导致初始化错误,直接闪退。

解决方法

知道了此原因,有两种解决方法:

(1)将Matlab的安装目录 \bin\win64下的SSLEAY32.DLL和LIBEAY32.DLL复制到windows的system32目录下,覆盖旧版本的文件。但是这样可能导致使用这两个DLL文件的其他程序出现问题。

(2)将Matlab的安装目录 \bin\win64下的SSLEAY32.DLL和LIBEAY32.DLL文件复制到自己编译后的exe同目录下,这样exe文件在运行时就是找自己目录下的这两个DLL文件,而不会使用windows\system32目录下的DLL文件。

---------------------

原文:https://blog.csdn.net/hongandyi/article/details/79427078

出现"???Error using ==>fread Invalid file identifier -1"错误通常表示您的程序无法正确识别或打开指定的文件。这个问题可能有多种原因,例如文件不存在、文件权限不足或程序没有正确指定文件路径等。

以下是几种可能的解决方法:

确认文件是否存在:检查程序中指定的文件路径是否正确,确保该文件存在于指定路径下。如果文件不存在,请检查文件名的拼写是否正确,或者尝试在Matlab的当前工作目录中查找文件。

确认文件是否被其他程序占用:如果您正在尝试读取或写入一个已经被其他程序占用的文件,就会出现类似的错误。请确保该文件未被其他程序占用,或者关闭占用该文件的程序。

检查程序中的代码:请检查程序中使用fopen()函数打开文件的代码是否正确,确保程序使用正确的权限打开文件。如果文件是只读的,那么您需要以只读模式打开文件,而不是以写入模式打开文件。另外,请注意在使用fread()函数之前,必须先打开一个文件。

尝试使用其他函数:如果以上方法都无法解决问题,可以尝试使用其他类似的文件 *** 作函数来读取文件,例如load()、importdata()、textread()等。

如果您仍然无法解决这个问题,请提供更多详细的信息,例如程序的代码片段和具体的错误信息,这样我们可以更好地帮助您解决问题。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7776670.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存