nargin,matlab中怎么获取键盘输入的量?
要知道输入数据的个数用a=size(N)即可。 nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。
例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
function y=test1(a,b) if nargin==0 a=0;b=0; elseif nargin==1 b=0; end y=a+b;
计算它的阶乘当输入两个参数时?
function result= Jiecheng (first,second)if nargin==1 result = 1; for i=1: first result = result*i; endelse if first
分数阶傅里叶变换参数?
function Faf = frft(f, a) % The fast Fractional Fourier Transform % input: f = samples of the signal % a = fractional power % output: Faf = fast Fractional Fourier transform error(nargchk(2, 2, nargin))
; f = f(:)
; N = length(f)
牛顿迭代法解非线性方程组例题?
function [r,n]=mulNewton(x0,eps)
if nargin==1
eps=1.0e-4;
end
r=x0-myf(x0)*inv(dmyf(x0));
n=1;
tol=1;
while tol>eps
x0=r;
r=x0-myf(x0)*inv(dmyf(x0));
tol=norm(r-x0);
n=n+1;
if(n>100000)
disp('迭代步数太多,方程可能不收');
return;
end
end
function f=myf(x)
x1=x(1);
x2=x(2);
f1=(15*x1+10*x2)-((40-30*x1-10*x2)^2*(15-15*x1))*5e-4;
f2=(15*x1+10*x2)-((40-30*x1-10*x2)*(10-10*x2))*4e-2;
f=[f1 f2];
function df=dmyf(x)
x1=x(1);
x2=x(2);
df=[ (3*(27*x1^2 + 12*x1*x2 - 66*x1 + x2^2 - 14*x2 + 60))/4,...
(3*x1*x2 - 3*x2 - 21*x1 + 9*x1^2 + 32)/2;(-3)*(4*x2 - 9),(-2)*(6*x1 + 4*x2 - 15)]
----------------------------------------------------------------------------------------------------------
[r,n]=mulNewton([0.2 0.6],0.001)
df =
30.9600 13.3600
19.8000 22.8000
df =
33.1741 13.7408
22.0443 24.5260
df =
35.4490 14.2583
21.4349 24.9400
df =
35.2223 14.2212
21.1843 24.7600
df =
34.9859 14.1678
21.2334 24.7120
df =
34.9828 14.1660
21.2601 24.7231
r =
0.1203 0.4785
n =
6
matlab怎么用键盘输入一个数?
matlab用键盘输入一个数,首先要知道输入数据的个数用a=size(N)即可。 nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。
例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
function y=test1(a,b) if nargin==0 a=0;b=0; elseif nargin==1 b=0; end y=a+b。
还没有评论,来说两句吧...