MATLAB R2016b中webread读取JSON报错:输入参数过多
解决MATLAB R2016b里webread报「Too many input arguments」的坑
我之前在R2016b版本里也碰到过一模一样的问题,你这情况大概率是自带的webread函数被你自己写的同名脚本/函数覆盖了,咱们一步步来排查解决:
先确认是不是函数被覆盖了
先在MATLAB命令行敲这个命令,看看你实际调用的webread到底是哪个:
which webread
如果返回的路径不是MATLAB安装目录下toolbox里的文件(比如类似C:\Program Files\MATLAB\R2016b\toolbox\matlab\iofun\webread.m),而是你自己工作文件夹里的webread.m或者webread.p,那问题就找到了——MATLAB会优先调用你自己的同名文件,而它的参数格式和内置函数不匹配,所以触发了报错。
动手解决问题
- 找到那个和内置函数重名的文件,要么重命名(比如改成
my_custom_webread.m),要么直接移到MATLAB的工作路径外面去。 - 然后敲命令清除内存里的旧函数缓存:
clear webread
- 再重新测试你的命令:
webread('https://jsonplaceholder.typicode.com/users')
这时候应该能正常返回JSON数据了。
如果还是不行?试试重置路径
要是确认调用的是内置函数但还是报错,可能是MATLAB的路径配置出问题了,重置一下默认路径:
restoredefaultpath rehash toolboxcache
执行完重启MATLAB再试,基本就能搞定。
额外提个语法小提醒
R2016b的webread带参数时要严格用「键值对」的格式,比如要查询id为1的用户,得这么写:
data = webread('https://jsonplaceholder.typicode.com/users', 'id', 1);
别把参数一股脑都塞进去,那样也会触发「参数过多」的错误。
内容的提问来源于stack exchange,提问作者Dims
相关产品推荐
相关产品推荐

