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运行得到的一系列的向量保存在同一个数组里? 展开
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运行得到的一系列的向量保存在同一个数组里? 展开
2个回答
展开全部
如果进行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文件的编程
这两个参数好好研究一下
采用:
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文件的编程
这两个参数好好研究一下
展开全部
你好,我检查了,写法没问题。应该是你的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自有的。
希望对你有帮助。
更多追问追答
追答
建议你试试下面这些代码,看能否计算。
l=15;
a=6.5;
a0=4.4;
disc(0,0)
这个应该是你的disc赋值,不能计算全部的值,有些值计算不出来。
最右边有个代码语言
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询