如何在MATLAB中的函数中使用多个用户输入?
我很难编写一个算法,将三个数字作为用户的输入,并计算它们的最大值。我试图通过使用函数来实现这些,但是,我得到一条错误消息:“未定义的函数'calc'用于'char'类型的输入参数。” 无标题(第2行)计算错误(数字);” 这是我的代码:(我不熟悉编码,所以可能会有其他类型的错误:)如何在MATLAB中的函数中使用多个用户输入?,matlab,Matlab,我很难编写一个算法,将三个数字作为用户的输入,并计算它们的最大值。我试图通过使用函数来实现这些,但是,我得到一条错误消息:“未定义的函数'calc'用于'char'类型的输入参数。” 无标题(第2行)计算错误(数字);” 这是我的代码:(我不熟悉编码,所以可能会有其他类型的错误:) 您的第一个错误是输入。它只从用户处获取一个字符串,但您需要三个数字。 第二行是脚本中的下一行。计算数字时,应将输出发送到变量。您还应该更改calc参数 将此代码放在脚本中,而不是放在代码中: number1= inp
您的第一个错误是
输入
。它只从用户处获取一个字符串,但您需要三个数字。第二行是脚本中的下一行。计算数字时,应将输出发送到变量。您还应该更改
calc
参数
将此代码放在脚本中,而不是放在代码中:
number1= input('Enter number1:');
number2= input('Enter number2:');
number3= input('Enter number3:');
maxi=calc(number1,number2,number3)
%---------------------------------------------------
function [ maxi ] = calc( numbers1,numbers2,numbers3 )
%UNTİTLED2 Summary of this function goes here
% Detailed explanation goes here
maxi= numbers1;
if numbers2>maxi
maxi= numbers2;
end
if numbers3>maxi
maxi= numbers3;
end
end
请参考阅读:正如您所说的“我是编码新手”,我想我应该描述几种不同的方法来实现这一点
读取输入
numberOfInputs = 3;
number = zeros(1, numberOfInputs);
for idx = 1:numberOfInputs
% Get the number of inputs declared in numberOfInputs
number(idx) = input( sprintf('Enter number %d: ', idx));
end
输入中添加第二个参数“s”。输入现在被视为字符串。用户必须以某种方式分隔输入的数字,最好使用空格。然后必须将字符串转换为数字向量
numberOfInputs = 3;
number = input( sprintf('Enter %d numbers separated by whitespaces\n', numberOfInputs), 's');
number = str2num(number); % Convert to number array
您可能应该对数字数组进行一些检查,以查看它是否有效(正确数量的数字)
maxNumber= max(number);
或者,如果您想在练习中使用if
结构,您可以使用for
循环使其更通用
maxNumber = number(1);
for idx = 2:numberOfInputs
if maxNumber < number(idx)
maxNumber = number(idx);
end
end
这对我帮助很大:)。如果是你的答案,请勾选
maxNumber = number(1);
for idx = 2:numberOfInputs
if maxNumber < number(idx)
maxNumber = number(idx);
end
end
function maxNumber = getMaxInput(numberOfInputs)