查看: 1274|回复: 8|关注: 0

[已解决] 关于double的使用

[复制链接]

入门

52 麦片

财富积分


50500


3

主题

14

帖子

0

最佳答案
请教:我编了一个函数文件如下
function a = test(T)
am=2*T;
a=diff(am,T,1)-am;
end

在命令行输入
a = test(2)

回车输出的是下面的内容:  空的 0×1 double 列向量

请问我编的有什么问题吗?怎么才能让他输出一个数值呢

论坛优秀回答者

18

主题

1915

帖子

410

最佳答案
  • 关注者: 80
发表于 2019-1-10 21:32:08 | 显示全部楼层
你运行一下diff(am,T,1)看看结果,然后看看diff的用法,看看你现在的使用是不是你期望的。
多看帮助文档
说明你的matlab版本

入门

52 麦片

财富积分


50500


3

主题

14

帖子

0

最佳答案
 楼主| 发表于 2019-1-11 11:51:05 | 显示全部楼层
diff用来求导数,我确实是想求导数的。
我在命令行输入diff(am,T,1),输出的结果也都对;

syms T
am=2*T;
a=diff(am,T,1)-am

a =

2 - 2*T

但是我想把它编进函数文件里,这样以后可以调用。但是编的结果就是上面的:空的 0×1 double 列向量
很苦恼。

新手

5 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2019-1-11 16:01:48 | 显示全部楼层
diff([am,T,1])-am ?

入门

52 麦片

财富积分


50500


3

主题

14

帖子

0

最佳答案
 楼主| 发表于 2019-1-11 16:13:26 | 显示全部楼层
深蓝孩童 发表于 2019-1-10 21:32
你运行一下diff(am,T,1)看看结果,然后看看diff的用法,看看你现在的使用是不是你期望的。 ...

diff用来求导数,我确实是想求导数的。
我在命令行输入diff(am,T,1),输出的结果也都对;

syms T
am=2*T;
a=diff(am,T,1)-am

a =

2 - 2*T

但是我想把它编进函数文件里,这样以后可以调用。但是编的结果就是上面的:空的 0×1 double 列向量
很苦恼。

论坛优秀回答者

18

主题

1915

帖子

410

最佳答案
  • 关注者: 80
发表于 2019-1-11 22:57:23 | 显示全部楼层
smile012 发表于 2019-1-11 16:13
diff用来求导数,我确实是想求导数的。
我在命令行输入diff(am,T,1),输出的结果也都对;

那你将符号变量传给函数呀,不要将数值型传给函数。
多看帮助文档
说明你的matlab版本

入门

52 麦片

财富积分


50500


3

主题

14

帖子

0

最佳答案
 楼主| 发表于 2019-1-12 13:38:59 | 显示全部楼层
深蓝孩童 发表于 2019-1-11 22:57
那你将符号变量传给函数呀,不要将数值型传给函数。

那要怎么改呢?我是菜鸡不太懂。。。。

论坛优秀回答者

18

主题

1915

帖子

410

最佳答案
  • 关注者: 80
发表于 2019-1-12 17:06:19 | 显示全部楼层 |此回复为最佳答案
smile012 发表于 2019-1-12 13:38
那要怎么改呢?我是菜鸡不太懂。。。。

这样怎么样?
  1. a = matlabFunction(test())
  2. a(2)

  3. function a = test()
  4. syms T
  5. am = 2*T;
  6. a = diff(am,T,1) - am;
  7. end
复制代码
多看帮助文档
说明你的matlab版本

入门

52 麦片

财富积分


50500


3

主题

14

帖子

0

最佳答案
 楼主| 发表于 2019-1-13 17:15:28 | 显示全部楼层

太牛了!就是我想要的结果!!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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