楼主: 格调蓝山

[已解决] INtlab工具箱功能函数gradient与Matlab自带函数相同

[复制链接]

MATLAB 基础讨论
版块优秀回答者

入门

188 麦片

财富积分


50500


17

主题

404

帖子

30

最佳答案
  • 关注者: 4
 楼主| 发表于 2013-10-31 16:41:01 | 显示全部楼层

It can not work . 不行啊  我运行的代码如下clc
clear
rmpath('C:\Program Files\MATLAB\R2013a\toolbox\intlab_v5.5\gradient\')
cd ('C:\Program Files\MATLAB\R2013a\toolbox\matlab\datafun')
f=@gradient
save ss.mat f
path(path,'C:\Program Files\MATLAB\R2013a\toolbox\intlab_v5.5\gradient\')然后在调用运行M文件,
clc,clear
load('C:\Program Files\MATLAB\R2013a\toolbox\matlab\datafun\ss.mat');
v = -2:0.2:2;
[x,y] = meshgrid(v);
z = x .* exp(-x.^2 - y.^2);
[px,py] = f(z,.2,.2);
contour(v,v,z), hold on, quiver(v,v,px,py), hold off

论坛优秀回答者

1

主题

9788

帖子

1467

最佳答案
  • 关注者: 338
发表于 2013-10-31 16:56:00 | 显示全部楼层
格调蓝山 发表于 2013-10-31 16:41
It can not work . 不行啊  我运行的代码如下clc
clear
rmpath('C:\Program Files\MATLAB\R2013a\toolbox ...

你最好一步步来操作,确定移除后
which gradient
得到的是matlab自己的路径

MATLAB 基础讨论
版块优秀回答者

入门

188 麦片

财富积分


50500


17

主题

404

帖子

30

最佳答案
  • 关注者: 4
 楼主| 发表于 2013-10-31 17:10:34 | 显示全部楼层
kaaaf123 发表于 2013-10-31 16:56
你最好一步步来操作,确定移除后
which gradient
得到的是matlab自己的路径

是的 rmpath之后which gradient得到了的是datafun路径

论坛优秀回答者

1

主题

9788

帖子

1467

最佳答案
  • 关注者: 338
发表于 2013-10-31 17:14:49 | 显示全部楼层
格调蓝山 发表于 2013-10-31 17:10
是的 rmpath之后which gradient得到了的是datafun路径

你这个时候保存
f = @gradient;
并且查看f的路径:
functions(f)
应该仍然是datafun/gradient
之后保存f,并在其他地方调用f,报错是什么

MATLAB 基础讨论
版块优秀回答者

入门

188 麦片

财富积分


50500


17

主题

404

帖子

30

最佳答案
  • 关注者: 4
 楼主| 发表于 2013-10-31 17:52:24 | 显示全部楼层
kaaaf123 发表于 2013-10-31 17:14
你这个时候保存
f = @gradient;
并且查看f的路径:

如果不恢复路径的话是可以的 但是回复路径后就不可以了

论坛优秀回答者

1

主题

9788

帖子

1467

最佳答案
  • 关注者: 338
发表于 2013-10-31 18:10:06 | 显示全部楼层 |此回复为最佳答案
格调蓝山 发表于 2013-10-31 17:52
如果不恢复路径的话是可以的 但是回复路径后就不可以了

那你以后调用matlab的gradient时候先rmpath之后再调用吧
另外这个工具如果不用的时候不要添加在路径里边 ,只有在用的时候把他addpath,并且不要保存

MATLAB 基础讨论
版块优秀回答者

入门

188 麦片

财富积分


50500


17

主题

404

帖子

30

最佳答案
  • 关注者: 4
 楼主| 发表于 2013-10-31 18:24:15 | 显示全部楼层
kaaaf123 发表于 2013-10-31 18:10
那你以后调用matlab的gradient时候先rmpath之后再调用吧
另外这个工具如果不用的时候不要添加在路径里边  ...

可不可以初始化的时候不要初始化这个工具箱 在哪里可以设置?

论坛优秀回答者

1

主题

9788

帖子

1467

最佳答案
  • 关注者: 338
发表于 2013-10-31 18:34:49 | 显示全部楼层
格调蓝山 发表于 2013-10-31 18:24
可不可以初始化的时候不要初始化这个工具箱 在哪里可以设置?

matlab启动的时候会执行matlabrc
另外如果搜索路径中有startup.m,matlabrc也会调用它
所以你要先检查下路径中(which startup),尤其是intlab的路径中是否有startup.m这个文件,添加路径的语句应该在这个文件里边

MATLAB 基础讨论
版块优秀回答者

入门

188 麦片

财富积分


50500


17

主题

404

帖子

30

最佳答案
  • 关注者: 4
 楼主| 发表于 2013-10-31 19:55:55 | 显示全部楼层
kaaaf123 发表于 2013-10-31 18:34
matlab启动的时候会执行matlabrc
另外如果搜索路径中有startup.m,matlabrc也会调用它
所以你要先检查下路 ...

用addpath+rmpath可以解决这个问题了,在使用工具箱的时候,必须初始化工具箱,startintlab,然后工具箱自动初始化并添加好多搜索路径,所以得要删除所有添加的路径;在rmpath输入参数命令解释中,有一句“Name of folder to remove from the search path, specified as a string. Use the full path name for folderNam”.我认为是删除具有特定字符的路径,可是给出的例子为“Example: '/home/user/matlab'”,我用这种格式删除不了任何东西,应该怎么用?

论坛优秀回答者

1

主题

9788

帖子

1467

最佳答案
  • 关注者: 338
发表于 2013-10-31 20:10:00 | 显示全部楼层
格调蓝山 发表于 2013-10-31 19:55
用addpath+rmpath可以解决这个问题了,在使用工具箱的时候,必须初始化工具箱,startintlab,然后工具箱 ...

Example: '/home/user/matlab'
这个例子是linux或unix系统的例子,你用的是windows
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表