matlab怎么将循环变量作为函数的输入值

我的函数本身是可用的,但是使用了for循环的循环变量为自定义函数的输入变量赋值,就报错function[lengthp]=workspace(il,ia,ia0)syms... 我的函数本身是可用的,但是使用了for循环的循环变量为自定义函数的输入变量赋值,就报错
function [lengthp] = workspace(il,ia,ia0)
syms phia thetaa;
global l a a0;
l=il;
a=ia;
a0=ia0;
for phia=0:18:90
for thetaa=0:18:90
lengthp=disc(phia,thetaa);
end
end
end

disc函数很复杂,就不粘上了,不过运行disc(36,36)一点问题都没有,是我外部的这个函数弄错了么?

workspace(15,6.5,4.4)报错
disc函数得到的是一个1*4的向量,怎么把workspace运行得到的一系列的向量保存在同一个数组里?
展开
 我来答
椴iejdhifghj
推荐于2018-03-07 · TA获得超过4701个赞
知道小有建树答主
回答量:622
采纳率:0%
帮助的人:132万
展开全部
如果进行m文件编程,而不知道输入参数个数
采用:
function y=y(varargin)
在这里我简单描述一下varargin的相关使用
(1)对输入参数个数的判断采用:
比如
y(y1,y2)
则nargin=2;
所以你可以这裂毕数样编程:
if nargin==2
y=y(y1,y2);
.....
end
(2)当使用varargin的时候
如果想要得到参数的值,
比如y=y(y1,y2)调用函数是,
在运算时候想要得到y1的值
则varargin{1}就是你想要得到的,
依此类推,varargin{2}就是y2的值
(3)还有相对应的参数varargout和肆首nargout,想要灵活的进行m文件的编程
这两个参数兆数好好研究一下
百度网友687a7d0
推荐于2016-07-03 · TA获得超过9403个赞
知道大有可为答主
回答量:2021
采纳率:85%
帮助的人:818万
展开全部

你好,我检查了,写法没问题笑蔽。应该是你的disc函数,出现了问题,或者除了0,或者其他。


其中,也提一些修改建议:

syms phia thetaa;这句不需要,matlab不需要定义。

保存为数组方法:

function lengthp= workspace11(il,ia,ia0)
global l a a0;
l=il;
a=ia;
a0=ia0;
flag=1
  for phia=0:18:90
       for thetaa=0:18:90
         lengthp(flag)=disc11(phia,thetaa);
     败敏  end
       flag=flag+1;
  end
end

函数名字建议不采用matlab敏感的名字,disc,workspace都是matlab自有的。

希察升枝望对你有帮助。

更多追问追答
追问

BTW,这个代码怎么直接粘贴上去,有底纹的?

追答
建议你试试下面这些代码,看能否计算。
l=15;
a=6.5;
a0=4.4;
disc(0,0)

这个应该是你的disc赋值,不能计算全部的值,有些值计算不出来。
最右边有个代码语言
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式