查看: 483|回复: 3|关注: 0

[已解决] 关于函数调用及call 调用的问题

[复制链接]

新手

17 麦片

财富积分


050


12

主题

33

帖子

0

最佳答案
  • 关注者: 1
第一个问题:
我有一个    function [p,h,s,cp,u,cv,w,v] = wxpt5(p,t)    函数
调用这个函数的时候只能                        [p,h,s,cp,u,cv,w,v] = wxpt5(300,500);           这种格式这样才能把  所有参数输出,
有没有什么简单的方法把这些值直接赋值给一个矩阵;还是只能先按上面这种格式输出了
然后才能把它赋值个一个矩阵                                          
[p,h,s,cp,u,cv,w,v] = wxpt5(300,500);
a=[p,h,s,cp,u,cv,w,v];




第二个问题:
如果
[p,h,s,cp,u,cv,w,v] = wxpt5(300,500);

这样调用了函数;

那是不是相当主函数中定义了p,h,s,cp,u,cv,w,v这几个变量的值;

所以如果有重名的值会被这个函数的值覆盖掉





谢谢

论坛优秀回答者

18

主题

2237

帖子

454

最佳答案
  • 关注者: 89
发表于 2020-1-16 17:36:28 | 显示全部楼层
第一个问题,修改函数或者封装一下就ok了。我不记得有什么方法能够直接输出各个输出的合并。

你如果输出这样名字的变量,肯定会覆盖工作区中的变量。
多看帮助文档
说明你的matlab版本

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

入门

281 麦片

财富积分


50500


1

主题

112

帖子

36

最佳答案
  • 关注者: 5
发表于 2020-1-16 17:37:54 | 显示全部楼层 |此回复为最佳答案
本帖最后由 gopher 于 2020-1-16 17:42 编辑

你好,1. 如果 p,h,s,cp,u,cv,w,v 都是标量,完全可以
  1. function a = wxpt5(p,t)
  2. ... % 你的代码
  3. ...

  4. %% 输出变量
  5. a = [p,h,s,cp,u,cv,w,v];
  6. end
复制代码

最后调用的时候,
  1. a = wxpt5(p,t);
复制代码
如果 p,h,s,cp,u,cv,w,v 维度不一致,有标量,有矩阵,有向量,可以利用结构体 struct 输出。例如
  1. function a = wxpt5(p,t)
  2. ... % 你的代码
  3. ...

  4. %% 输出变量
  5. a.p = p;
  6. a.h = h;
  7. ...
  8. a.v = v;
  9. end
复制代码

然后调用的时候
  1. a = wxpt5(p,t); % a 是一个结构体
  2. % a.h 就是 h 的值,以此类推
复制代码


2. 是。会被覆盖掉。




新手

17 麦片

财富积分


050


12

主题

33

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 2020-1-16 17:43:23 | 显示全部楼层
gopher 发表于 2020-1-16 17:37
你好,1. 如果 p,h,s,cp,u,cv,w,v 都是标量,完全可以
最后调用的时候,
如果 p,h,s,cp,u,cv,w,v 维度不一 ...

原来是这样! 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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