matlab中一个由于文件检索无法和函数并行而引发的问题
来源:互联网 发布:手机c语言编译器 编辑:程序博客网 时间:2024/06/05 01:53
matlab中一个由于文件检索无法和函数并行而引发的问题
问题简述: 使用一个m函数来写一个.m文件(使用fopen fprintf fclose等), 而后首次调用该.m文件中的函数(直接使用或者使用@取出函数句柄), 则无法检测到该文件为一个matlab的m函数文件, 进而导致出错.
适用版本: MATLAB R2014b (8.4.0.150421) with Java: 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
问题重现: 我懒, 直接贴代码了……
function [ flag ] = fncGenAndRunTest( )%开始写函数 flag = 0 ; fid = fopen ( 'subFnc.m' , 'w' ) ; fprintf ( fid , '%s\n' , 'function [res]=subFnc(input)' , 'res=input;' , 'end'); fclose ( fid ) ;%函数写完,尝试调用 try fncPnt = @subFnc ; flag=fncPnt(1); display('√'); catch warning('×'); %首次尝试失败,再次尝试 try userpath('H:\Programming\matlab基地\示例\拾壹月问题汇总'); fncPnt = @subFnc ; flag=fncPnt(1); display('√'); catch warning('×××'); %刷新路径(该路径为我存放和执行此函数的路径)后,发现仍然失败 end end%有趣的是,当此函数调用结束并且我的那个工作路径下仍存在subFnc.m文件时,第二次调用此函数会得到正确输出.
发现背景: 上个月我在写模拟退火+龙格库塔法对一组常微分方程组的系数做拟合的算法, 其中涉及到需要多次改变系数的值, 生成不同的方程来进行数值计算. 最初我的做法是动态生成了一堆.m文件, 事实证明这是行不通的…… 然后就发现了这个特性 (喵喵喵???)
推测原因: 见本博文标题……
解决方案: 所以最后我没有动态生成.m文件然后调用, 而是将这些函数写成字串的形式, 通过句柄从字串生成匿名函数, 最后用eval来执行这些函数, 代码比较丑(毕竟eval + try catch)不贴了.
最近学校这边很忙, 外加老妈时刻监视我(喵喵喵???但这边她应该看不到吧), 不能太频繁的更新这边的东西了, 看看就好, 我争取寒假周更
阅读全文
0 0
- matlab中一个由于文件检索无法和函数并行而引发的问题
- Intellig IDEA中由于host绑定而引发的问题
- matlab中由size函数引发的问题
- windows 7 iis7.5 中 由于扩展配置问题而无法提供您请求的页面
- windows 7 iis7.5 中 由于扩展配置问题而无法提供您请求的页面
- STS由于找不到JAVA_HOME而无法启动的问题
- 一个由于文件权限问题导致的SQL Server 2008 无法正常启动的问题
- 由于使用SVN 造成的项目无法使用的问题,报错“项目刷新失败,无法从服务器中检索文件夹信息
- VS中bin和obj文件引发的问题
- 关于MySQL由于外键约束而无法执行删除操作的一个简单的解决办法
- 一个.tar.gz文件引发的问题
- 在使用Myeclipse时遇到由于删除action而引发的空指针异常问题的解决方法
- 由于乱码而无法在putty显示出来的文件,可以这样删除或者重命名
- 关于ORA-01187:由于验证测试失败而无法从文件 201 读取的解决办法
- IIS7错误:“由于扩展配置问题而无法提供您请求的页面”的解决方法
- IIS7虚拟目录出现HTTP错误500.19(由于权限不足而无法读取配置文件)的问题
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。
- IIS7错误:“由于扩展配置问题而无法提供您请求的页面”解决
- 初识Android广播机制
- React高级指南(四)【Uncontrolled Components】
- Kotlin
- shader-school的渲染入门系列(一)
- javaweb学习总结(4)---Filter的分类
- matlab中一个由于文件检索无法和函数并行而引发的问题
- shiro连接mysql数据库小例子
- C语言数据类型转换
- 51单片机的流水灯--逻辑实现
- 实现为项目添加Hibernate支持
- Postman 高级用法指南
- Jzoj4906 组合数问题
- java-11.12
- privacy policy