How would I convert a script to a function?
24 次查看(过去 30 天)
显示 更早的评论
I have just made a script randArrGen.m that generates an array of n floating point numbers, which needs to be used as a function within another scipt, but I'm struggling to understand how to turn it into a function. In my head it seems easier just to run this script within the other script when required. The a and b values aren't massively important and are just to give a range for the floating point numbers to be within (I though -1000 and 1000 were good boundaries).
% randArrGen generates an array of n floating point numbers, where n is a
% value inputted by the user.
n = input("How many values do you wish to have in the array?");
a = -1000;
b = 1000;
array = (b-a).*rand(n,1) + a;
0 个评论
采纳的回答
Image Analyst
2021-1-7
Put a function line on it:
function array = randArrGen()
% randArrGen generates an column vector of n floating point numbers,
% where n is a value inputted by the user.
n = input("How many values do you wish to have in the array?");
a = -1000;
b = 1000;
array = (b -a ) .* rand(n, 1) + a;
6 个评论
Image Analyst
2021-1-7
编辑:Image Analyst
2021-1-7
Try this:
% Ask user for three floating point numbers.
defaultValue = {'20', '-1000', '1000'};
titleBar = 'Enter values';
userPrompt = {'Enter n : ', 'Enter a: ', 'Enter b: '};
caUserInput = inputdlg(userPrompt, titleBar, 1, defaultValue);
if isempty(caUserInput),return,end % Bail out if they clicked Cancel.
% Convert to floating point from string.
n = str2double(caUserInput{1})
a = str2double(caUserInput{2})
b = str2double(caUserInput{3})
% Check usersValue1 for validity.
if isnan(n)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into n.
n = str2double(defaultValue{1});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', n);
uiwait(warndlg(message));
end
% Do the same for a
% Check a for validity.
if isnan(a)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into a.
a = str2double(defaultValue{2});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', a);
uiwait(warndlg(message));
end
% Do the same for b
% Check b for validity.
if isnan(b)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into b.
b = str2double(defaultValue{3});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', a);
uiwait(warndlg(message));
end
Good luck, Hopefully you've been through this:
更多回答(1 个)
Jan
2021-1-7
All you have to do to convert it to a function, is to add a head line:
function array = randArrGen
Maybe you want to define n and/or a, b as input arguments?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!