输入参数不足

5741次浏览(过去30天)
TheLimpNinja
TheLimpNinja 在7月2012
大家好,我对MATLAB很陌生 我遇到一些麻烦。 很多 人有 有th e相同 问题,但似乎没有人能够用简单的英语解释或解决它。有人能解释一下这个错误是什么以及如何修复它吗
我有一个简单的函数:
功能[r] = Mec134function (w, theta_deg)
t2 = 10000;
theta_rad = (theta_deg. / 180)。*π;
t1=55090./(10*sin(θu rad));
rx=(t1.*cos(θrad))-t2;
RY = W-(T1 * SIN(theta_rad)。);
r = ((rx) ^ 2 +(一)^ 2)。^ 0.5;
结束
第3行似乎出现了这个错误,但我不确定为什么。
谢谢。
9评论
沃尔特·罗伯森
沃尔特·罗伯森 2019年10月7日
第38行的哪个函数?

登录评论。

接受的答案

Akiva戈登
Akiva戈登 2012年11月8日
编辑:Mathworks支金宝app持团队 2018年11月27日
你的函数定义了两个输入参数(w和theta_deg)。当你运行mec134函数时,你必须指定两个输入,否则你会得到错误“没有足够的输入参数”。
例如,如果你在命令窗口中运行mec134函数而不指定任何参数:
> > Mec134function
你会得到这个错误:
足够的输入参数。
错误在Mec134function中(第3行)
theta_rad = (theta_deg. / 180)。*π;
如果你运行mec134函数并指定两个输入参数,“w”和“theta_deg”(假设定义了“w”和“theta_deg”),你不会得到错误消息:
> > Mec134function (w, theta_deg)
如果你有文件“mec134功能。m”在编辑器中打开,你尝试通过按下“运行”按钮或F5运行函数,MATLAB运行mec134函数没有任何输入参数,你得到的错误“不够的输入参数”。然后打开“Run”按钮下拉菜单,提示您为缺少的输入参数输入值。
添加所需的值并按enter键。以后单击“运行”按钮或F5时,您输入的值将设置为默认输入。
要更改值,请按“运行”按钮下面的向下箭头并输入新值。
5评论
埃文Curatolo
埃文Curatolo 2020年9月27日
天啊!保佑你的灵魂。谢谢你的评论。

登录评论。

更多的答案(15)

TheLimpNinja
TheLimpNinja 在7月2012
编辑:沃尔特·罗伯森 在2016年7月15日
抱歉,函数是
功能[r] = Mec134function (w, theta_deg)
t2 = 10000;
theta_rad = (theta_deg. / 180)。*π;
t1=55090./(10*sin(θu rad));
rx=(t1.*cos(θrad))-t2;
RY = W-(T1 * SIN(theta_rad)。);
r = ((rx) ^ 2 +(一)^ 2)。^ 0.5;
结束
如果这更清楚的话:-)
3评论
史蒂文的主
史蒂文的主 2016年12月27日
在发布R2015b之前 函数 rad2deg 函数是Mapping Toolbox的一部分。在那个版本中 进入MATLAB
作为避免角度和弧度之间转换的另一种解决方案,MATLAB也有功能 信德 cosd 用于计算角度的度正弦和余弦和那些已经在相当一段时间MATLAB的一部分。[我不记得确切,他们推出的时候。]

登录评论。


TheLimpNinja
TheLimpNinja 在7月2012
编辑:沃尔特·罗伯森 在7月2012
谢谢 :-)
将看一看“入门”
我有一个简单的函数:
功能[r] = Mec134function (w, theta_deg)
t2 = 10000;
theta_rad = (theta_deg. / 180)。*π;
t1=55090./(10*sin(θu rad));
rx=(t1.*cos(θrad))-t2;
RY = W-(T1 * SIN(theta_rad)。);
r = ((rx) ^ 2 +(一)^ 2)。^ 0.5;
结束
这似乎给第2行带来了这个错误,但我不确定为什么。
2的评论
Waldemiro Kubucama
您好,首先在Matlab中按“Run”按钮,然后只需按“ENTER”按钮,您的计算机就可以运行了。我想您的问题会得到解决。

登录评论。


布莱恩·巴特森
布莱恩·巴特森 2012年11月29日
编辑:布莱恩·巴特森 2012年11月29日
我对Matlab也很陌生,曾尝试在.m(11月7日的JP Donlon)中运行上述代码。但是,我不断收到一个错误,指出“输入参数不足”。我不确定这意味着什么,因为我曾尝试运行教授在其他计算机上运行的其他代码。这与我的首选项设置有关吗?
此外,当我运行代码分析器时,没有问题……不知道发生了什么。
4评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年3月29日
//www.tatmou.com/matlabcentral/answers/53100-not-enough-input-arguments#comment_109973

登录评论。


安妮迈克尔
安妮迈克尔 在2016年7月15日
编辑:沃尔特·罗伯森 在2016年7月15日
如何纠正这个错误
错误使用DetectFace(第68行)
足够的输入参数。
下面的代码中给出
我= imread (“lena.jpg”);
minFace = 20;%你正在搜索的脸的最小尺寸
maxFace = 4000;%您正在搜索的脸的最大尺寸
overlappingThreshold = 0.5;用于分组附近检测的重叠阈值
numThreads = 24;用于并行计算的CPU线程数
如果Nargin > 2 && ~ is空(options)
如果isfield(选项,“minFace”) & & ~ isempty (options.minFace)
minFace = options.minFace;
结束
如果isfield(选项,“maxFace”) & & ~ isempty (options.maxFace)
maxFace = options.maxFace;
结束
如果isfield(选项,“overlappingThreshold”) & & ~ isempty (options.overlappingThreshold)
overlappingThreshold = options.overlappingThreshold;
结束
如果isfield(选项,“numThreads”) & & ~ isempty (options.numThreads)
numThreads = options.numThreads;
结束
结束
% %测试探测器
如果~ ismatrix(我)
I = rgb2gray(我);
结束
candi_rects = npscan (model, I, minFace, maxFace, numThreads);
% %后加工
如果isempty (candi_rects)
矩形= [];
返回
结束
3评论
沃尔特·罗伯森
沃尔特·罗伯森 在2016年7月15日
你为什么用 输入参数个数 返回 当你写这个的时候 脚本 输入参数个数 在中定义为0 脚本 返回 可能导致奇怪的行为,当使用 脚本
当我四处搜索时,在我看来,这段代码好像是抄袭的 https://github.com/biotrump/NPD/blob/master/NPDFaceDetector/DetectFace.m 这是一个 功能 不是一个 脚本 .下面的注释中给出了调用该函数的示例:
我= imread (“lena.jpg”);
装载(“model.mat”);
rects = DetectFace(npdModel, I);
你不能只是移除 功能 从函数中删除一行,并指定给一个变量,然后期望它工作。

登录评论。


瑞玛·莫汉蒂
瑞玛·莫汉蒂 2016年12月27日
编辑:沃尔特·罗伯森 2017年5月26日
clc;清晰;关闭全部
xo=0.4;
一个= [];
b=[];
Aeq = [];
说真的= [];
Q = 100;
R = 1;
N = 50;
情况= 0 (100 1);
% Umin = 1 * 1 (100 1);
% Umax = 1 * 1 (100 1);
% U = fmincon (Aeq @cost1情况,A, b,说真的,Umin, Umax, [], [], N);
x = xo;h = 0.1;
xo = [-0.5, 0.5];
选项=最佳选项(@fmincon,“算法”“sqp”);
U = fmincon (@cost1情况 ,[],[],[],[],[],[],@ confuneq选项);
k = 1: N
S1 = F (x (k), U (k));
S2 = F (x (k) + 0.5 * h * S1, U (k));
S3 = F (x (k) + 0.5 * h * S2, U (k));
S4 = F (x (k) + h * S3, U (k));
X(K + 1)= X(K)+(1/6)*(S1 + 2 * S2 + 2 * S3 + S4)*小时;
k=k+1;
结束
%的情节(x);
情节(U);
网格
图();情节(x)
网格
我是matlab新手。有人能帮我解决这个问题吗。
它没有显示足够的输入参数。

今次shree
今次shree 2017年3月3日
编辑:沃尔特·罗伯森 2017年3月3日
你好,先生,我是新来的matlab。我收到错误在此代码,如“预处理requries多个输入arugument到运行”。可以请运行该程序。我的项目的主题是使用过滤器识别和匹配假标志。
功能img =预处理(我)
[x y o] =大小(我);
如果Ò== 3
I = rgb2gray(我);
结束
I = im2double(我);
% %中值滤波器
地中海= medfilt2(我);
图中,imshow(地中海)
标题(“中值过滤图像”
[psnr_med, mse_med] = psnr(我,地中海)
% %平均滤波器
OUT7 = imfilter(I,fspecial('平均数'));
图中,imshow (out7)
标题(“是什么意思过滤的图像”
[psnr_avg, mse_avg] = psnr(我out7)
% %高斯滤波器
高斯= imfilter(我,fspecial (“高斯”));
图中,imshow(高斯)
标题(“高斯滤波器的图像”
[psnr_gau, mse_avg] = psnr(我,高斯)
% %维纳滤波器
psf = fspecial (“高斯”7、10);
图像1=imfilter(I,psf,“conv”“通告”);
var1 = (1/256) ^ 2/12;
var2=var(I(:);
魏= deconvwnr (psf, image1 (var1 / var2));
图中,imshow(魏);标题(“维纳过滤图像”);
[psnr_-wei,mse_-wei]=psnr(I,wei)
psnr_all = [psnr_med,psnr_avg,psnr_gau,psnr_wei];
psnr_max = max (psnr_all);
val =找到(psnr_all = = psnr_max);
如果val = = 1
img =地中海;
disp (“中位数有较高的psnr”);
elseifval = = 2
img = out7;
disp ("平均psnr高");
elseifval = = 3
img =高斯;
disp (“高斯具有高信噪比”);
其他的
img =魏;
disp ('weiner有高psnr');
结束
3评论
史蒂文的主
史蒂文的主 在2017年3月24日
Vani shree,你应该把这个作为一个单独的问题来问,因为它与“输入参数不够”这个问题无关。展示你所写的内容,问一个你在哪里遇到困难的具体问题,你可能会得到一些指导。

登录评论。


Ganesh Petkar
Ganesh Petkar 2017年4月18日
我得到的错误如下函数“没有足够的输入参数。”
delayed_signal = mtapped_delay_fcn(输入);
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年4月18日
输入 是一个MATLAB函数调用。看到 //www.tatmou.com/help/matlab/ref/input.html

登录评论。


温德尔
温德尔 2017年5月26日
编辑:沃尔特·罗伯森 2017年5月26日
嗨,我正在尝试运行Dr. John Stockie的matlab代码,但我得到了一个“不够的输入参数”错误。我不太擅长使用Matlab,所以我会感谢任何帮助。谢谢你!我粘贴代码:
功能C = ermak(x, y, z, H, Q, U, Wset, Wdep)
%叶尔马克:计算污染物浓度(千克/立方公尺)使用所述
%高斯羽流模型,修正为沉积和沉降
%的速度。该代码处理单个源代码(位于
%起源)和多个受体。
%输入参数:
%x受体位置:沿风向的距离,带
源在x=0 (m)处的百分比
% y -感受器位置:横风向(m)
% z -受体位置:垂直高度(m)
%H—震源高度(m)
% Q -污染物排放速率(kg/s)
%U - 风速(米/秒)
% Wset -重力沉降速度(m/s)
% Wdep -沉积速度(m/s)
%输出:
% C—污染物浓度(kg/m^3)
参考文献:Ermak (1977), Winges(1990/1992)。
首先,定义截止速度,在截止速度以下浓度= 0。
Umin = 0.0;
根据稳定性等级C -确定σ系数
%轻微不稳定(3-5米/秒)。
唉= 0.34;= 0.82;阿兹= 0.275;bz = 0.82;
sigmay = ay * abs (x)。^by .* (x > 0);
sigmaz =阿兹* abs (x)。^bz .* (x > 0);
%计算涡流扩散率(m^2/s)。
Kz = 0.5*az*bz*U*abs(x).^(bz1). * (x > 0);% K = 0.5*U*d(∑^2)/dx
%使用Ermak公式计算污染物浓度(kg/m^3)。
如果U < Umin,
C = 0 * Z;
其他的
Wo = Wdep - 0.5*Wset;
C =问。/(2 *π*你* sigmay。* sigmaz)。* exp (-0.5 * y。^ 2. / sigmay。^ 2)。*...
exp(-0.5 *名为Wset * (z-H)。/ Kz -名为Wset ^ 2 * sigmaz。^ 2/8. / Kz。^ 2)。*...
(exp (-0.5 * 2. (z-H)。^ / sigmaz。^ 2) +...
exp (-0.5 * (z + H)。^ 2. / sigmaz。^2) -根号(2*)*Wo*sigma。/ Kz。*...
exp(我们* (z + H)。/ Kz + 0.5 *我们^ 2 * sigmaz。^ 2. / Kz。^ 2)。*...
ERFC(禾* sigmaz / SQRT(2)./的Kz +(Z + H)./ SQRT(2)./ sigmaz));
ii = find(isnan(C) | isinf(C));
C (ii) = 0;%设置所有NaN和inf值为零。
结束
在第31行中,错误消息是指“sigmay”
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年5月26日
请在这里阅读前面的答案。

登录评论。


aarthy reddy R
aarthy reddy R 在2019年9月4日
编辑:沃尔特·罗伯森 2019年10月14日
功能测试(num1、num2、小型、s)
加载(小,num1, num2)
S = sum(num1, num2)
结束
这个代码,我得到这些错误
足够的输入参数。
错误在测试中(第3行)
加载(小,num1, num2)
4评论
沃尔特·罗伯森
沃尔特·罗伯森 2019年10月14日
注意:如果你传入一个变量的名字作为第四个参数,那么你传递的函数将会 将该变量设置为求和的结果。如果要在MATLAB中返回值,需要在函数行中的“=”左侧对其进行编码。例如,
功能S = test(num1, num2, small)
加载(小,num1, num2)
S = sum(num1, num2)
结束
这不太可能按您希望的方式工作。为了使load()在那里工作,small和num1以及num2必须分别是字符向量或标量字符串变量,num1和num2必须与有效的MATLAB变量名具有相同的形式。这些名称必须在由 变量
通过使用load()的形式,MATLAB通常会将变量名“噗”地存在。然而,当你使用 结束 匹配一个 功能 语句,你向MATLAB保证你不会把变量变成存在的,并且允许MATLAB给出一个错误或忽略神奇创建的变量。因此,后 负载 num1 num2 可能会继续是字符向量或字符串对象,你会尝试调用sum()来传递它们。如果第一个参数, num1 是字符串对象,但如果num1是字符向量,则可以。对sum()的第二个参数有效的字符向量或标量字符串对象数量有限,即“all”、“double”、“native”、“default”、“includenan”或“omitnan”。如果您碰巧将变量命名为其中任何一个,那将是令人惊讶的。。。

登录评论。


沙帕
沙帕 2020年3月11日
编辑:沃尔特·罗伯森 2020年3月11日
你好。我是新的在Matlab和我想做我的分配与这个函数refraction_2layers和Matlab说错误使用refraction_2layers(第18和25行)这是整个程序
功能refraction_2layers(v1, v2, z, FIRST_ARRIVALS_ONLY);
%折射2layers(v1, v2, z);
%创建用于与层速度的两层系统行程时间曲线
% v1和v2和z的层1厚度
% FIRST_ARRIVALS_ONLY标志可以设置为1,只绘制第一次到达的图像。通过
%默认,所有到达都被绘制。
如果nargin<4首次到达仅=0;结束
检波器x位置(m,相对于震源)%%
x = [0:5:300];
%%直达波%%沿地面传播(速度v1)
t1 = x / v1;
% %头波
沿z1-z2边界折射
%%旅行时间取决于两个层的速度
%%和层1只(层2无关的厚度)的厚度
t2 = (2 * z *√v2 ^ 2 v1 ^ 2) / (v1 * v2)) + x / v2;%%注意坡度应为1 / V2!
xcrit z = 2 * * v1 /(√(v2 ^ 2 v1 ^ 2));
如果伊斯雷尔(xcrit)
a = min(找到(x > xcrit));
结束
交叉= ((2 * z *√(v2 ^ 2 v1 ^ 2)) / (v1 * v2)) / (1 / v1-1 / v2);
B = max(find(x<= cross));
如果FIRST_ARRIVALS_ONLY
地块(x(1:b)、t1(1:b)*1000,'.--'
持有
如果伊斯雷尔(t2)
地块(x(b:end)、t2(b:end)*1000,“r——”
结束
其他的
情节(x, t1 * 1000,'.--'
持有
如果伊斯雷尔(t2)
情节(x(结束),t2(结束)* 1000,“r——”
结束
结束
包含(“检波器抵消(m)”
ylabel ('时间(ms)'
网格
传奇(“直射波”“头波”
标题([“z1 = ',num2str(Z),“米;v1 = 'num2str (v1),米/秒;v2 = 'num2str (v2),“米/秒”])
轴([0 300 0 300])
持有
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年3月11日
沙帕
我为您设置了代码的格式,以使其他人可以阅读,但我怀疑我没有完全保留行边界,因此我们不知道哪些行给您带来了问题。请使用注释标记它们。请同时给出确切的错误消息。
也请检查一下位置 结束 语句。在我看来,你可能多喝了两杯 结束 语句。

登录评论。


Josilyn Dostal
Josilyn Dostal 20月23日
我真的很挣扎在我的代码搞清楚这个“没有足够的输入参数”的错误。任何帮助将不胜感激!这是一个间歇精馏问题,错误指的是接近底部的温度的功能。代码和错误都低于:
P=912;% mmHg或1.2 atm
L0 = 100;开始时蒸馏器中的液体的摩尔数
A = [6.90565 6.95464];B = (1211.033 - 1344.8);C = (220.79 - 219.482);%安东尼常量
% x0 = [0.60 0.40];%初始液浓度xb = 60% xt = 40%
% xf = [0.20 0.80];%终液浓度xb = 20% xt = 80%
xtspan = linspace(0.40、0.80,100);
[xt, L] = ode45(@ mol, xtspan, L0);
L = L(结束);
流(当甲苯的液相摩尔分数达到0.80时,蒸馏器中剩余的液体量为%f摩尔L);
%汽液平衡比,K
功能Kt = EquilibriumRatio (Psatt)
Kt = Psatt / P;
结束
%甲苯蒸气压
功能Psatt = VaporPressuret (T, A, B, C)
Psatt = 10 ^(一(2)- b (2) / (T + C (2)));
结束
苯蒸气压%
功能Psatb = VaporPressureb (T, A, B, C)
Psatb = 10 ^ (- b (1) (1) / (T + C (1)));
结束
%的颂歌
功能dLdx =摩尔(xt,左)
T0 = 95.585;
% = odeset选项(“RelTol”、1 e-6 AbsTol, 1 e-8);
%选项= optimset (PlotFcns, {@optimplotx, @optimplotfval});
% = optimset选项(“显示”、“iter”);%显示迭代
选项=优化集(“显示”“关闭”“TolX”1 e-6);%的选项
T0 = f0 (@temp, T0, options);
Psatt = VaporPressuret (T);
Kt = EquilibriumRatio (Psatt);
dLdx = L / (xt * (Kt-1));
结束
功能xt Tempfun = temp (T, P, A, B, C)
Psatt = VaporPressuret (T, A, B, C);
Psatb = VaporPressureb (T, A, B, C);
Tempfun=Psatt*xt+Psatb*(1-xt)-P;
结束
>>项目2
错误使用fzero(第306行)
FZERO无法继续,因为用户提供的function_handle ==> temp失败,出现以下错误。
足够的输入参数。
错误项目2>摩尔(第30行)
T0 = f0 (@temp, T0, options);
错误在odearguments(第90行)中
f0 =函数宏指令(颂歌,t0, y0, args {:});% ODE15I设置参数{1}为yp0。
错误在ode45(第115行)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
错误在项目2(第7行)中
[xt, L] = ode45(@ mol, xtspan, L0);
5评论
Josilyn Dostal
Josilyn Dostal 2020年4月24日
你是我的救世主。你是如此美好。

登录评论。


玛丽亚哈桑
玛丽亚哈桑 2020年7月13日
你好,
我得到错误'没有足够的输入参数。'我正在尝试在线试用版本。当我单击运行图标时,它不允许我为输入输入值,因为没有输入值的选项。有什么建议吗?
最好的
莎拉

Gurwinder pal singh Bhinder
Gurwinder pal singh Bhinder 2020年11月27日
我是新的MATLAB的。我收到错误消息“extract_features”需要更多的输入参数来运行。
命令窗口中的Anderror:
> > Extract_Features
输入参数不足。
误差在Extract_Features(线2)
img1 = imread(文件名);
代码如下:
功能提取功能(文件名、标志)
img1 = imread(文件名);
如果ndims (img1) = = 3;img1 = rgb2gray (img1);结束%彩色图像
disp ([“提取特征”文件名“……”]);
冷杉= ext_finger (img1 0);
冷杉=冷杉(冷杉(:,3)< 5:);
如果标志== 1
图;
imshow (img1);
持有
fir1 =找到(冷杉(:,3)= = 1);
fir3 =找到(冷杉(:,3)= = 3);
情节(冷杉(fir1、1)、冷杉(fir1, 2),' r + ');
情节(冷杉(fir3、1)、冷杉(fir3, 2),“波”);
结束
filename2 =文件名;filename2 (end-1) =“x”;filename2(结束)=“t”
保存(filename2,“杉”“ascii”);
结束
8的评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年11月27日
正确的。

登录评论。


默罕默德Hadyan Utoro
默罕默德Hadyan Utoro 2021年6月17日
有人能帮我一下吗
%%全波整流和均方根包络线
rec_EMG = abs (EMG);
信封=零(L,1);
窗口= 50;
信封= SQRT(movmean(rec_EMG。^ 2),“窗口”);
我试图做让RMS,但它说:
没有足够的输入参数。
我不明白,因为我已经用了两个参数。
谢谢你的帮助
2的评论
默罕默德Hadyan Utoro
默罕默德Hadyan Utoro 2021年6月17日
非常感谢您罗伯逊先生的解释。我把支架在错误的位置。
感谢你的帮助

登录评论。


Kumar maruthi srinivas chennu
Kumar maruthi srinivas chennu 于3九月2021 11点28分
编辑:Kumar maruthi srinivas chennu 2021年9月3日12:32
有人能帮我一下吗
功能u = Anti_Tv (g,γ)
gHS = uint8(imadjust (g));
gGC = uint8(255。* (((g)的两倍。/ 255)。^(γ)));
克双=(克(:));
n =长度(g);
B =零(2 * N,1);
d = B;
U =克;
eer=1;k=1;
托尔= 1 e - 3;
λ= 0.05
[B, Bt, BtB] = DiffOper(根号(n));
输入参数不足
2的评论
Kumar maruthi srinivas chennu
Kumar maruthi srinivas chennu 2021年9月3日12:34
你能检查一下然后告诉我吗

登录评论。

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!