解决MATLAB报错:错误使用open(第136行)

使用新版MATLAB(R2020A/B),在双击或右键打开某些文件夹下的.m文件时会出现以下报错:

MATLAB错误对话框

错误使用open(第136行)

此类型的变量不支持使用点进行索引


 为解决这一问题尝试了卸载重装、更换路径、降低版本等方法,其中2018版MATLAB则不会出现此报错,但是治标不治本,本文尝试通过编译调试找到问题所在并解决。注:本文所解决的可能是众多诱因之一,读者可按照本文思路进行尝试。


首先命令行输入open并打开函数找到136行。


 第一层报错点在此,原因是openAction调用openm.m函数时出错,为此打开该函数,方法同上。


通过调试,发现第二层报错点在edit函数内,直接调试步入, 找到shouldUseBuiltinEditor变量并右键打开。


将第17行修改为 s = matlab.settings.internal.settings。而原本代码为s = settings。此时问题便可解决。


 那么为什么会出现这一问题呢?

通过对比18版和20版shouldUseBuiltinEditor变量复制方式,发现20版将s = matlab.settings.internal.settings单封装成一个函数,即settings。此时如果在MATLAB的索引路径下添加过自己写的重名函数,则容易优先调用,从而出现变量赋值类型的报错。而18版起到同样作用的isUsingBuiltinEditor函数中,则是直接赋值,也就不会出现本文的问题。

 所以,非必要情况下,尽量避免用MATLAB已有函数名命名自写函数。当然,在MATLAB在版本更新时会增加不少新函数,因此重名问题不可避免,如果出现类似报错,可以考虑查找这一情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值