Too many input error when generating random number using exponential distribution

Hi everyone,
I want to use command "random" to generate 1000*1 vector, each elements of this vector are random drawn from Exponential distribution whose mu=0.1. This is my code:
pd = makedist('Exponential','mu',0.1);
Y=random(pd,1000,1);
When i run this in MATLAB, there is an error:
I also try some other distributions, but the command "random" ONLY works with normal distribution.
Please help, thank you!

4 Comments

Interesting. There is nothing wrong with the code you have written, as I don't get the same error message. I also runs for me in R2022a without error.
pd = makedist('Exponential','mu',0.1);
Y=random(pd,1000,1);
plot(Y)
Please share the result of this command
which random -all
@Cris LaPierre, shouldn't we check for the result of
which exprnd -all
given the error message produced.
Please also show the output of:
which -all exprnd
/MATLAB/toolbox/stats/stats/exprnd.m
Many thanks for you two! I add the information you asked in the following pictures:
My classmate also ran my code in her MATLAB and there is nothing wrong ,so I guess the problem may stem from my MATLAB ifself (maybe some m documents loss?).

Sign in to comment.

 Accepted Answer

The exprnd function in D:\dynarc\5.4\matlab\missing\stats\exprnd.m is taking precedence over the exprnd function included in Statistics and Machine Learning Toolbox. That function doesn't have the same signature (doesn't accept the same number and/or type of inputs as the toolbox function.) While it is ahead of the toolbox directory on the MATLAB search path, you will not be able to use the function from the toolbox. I would rename it, remove it, or remove the directory containing it from the MATLAB search path.

More Answers (2)

You have a function that is shadowing the builtin exprnd.m file. Rename your file (the one at D:\dynarc\5.4\matlab\missing\stats\exprnd.m)
Thank you guys for you help!
Actually dynare is a very useful package (from https://www.dynare.org/) for researchers in macro economics. I don't want to rename or remove the file "exprnd.m" in D:\dynare\5.4\matlab\missing\stats, otherwise I will meet some problem when using dynare package. But thanks to your suggestion, I come across with the following solution:
If I want to use basic MATLAB functions, I would remove the dynare folder from the MATLAB search path.
If I want to use dynare package, I would add the dynare folder to the MATLAB search path.
This solution allows me to switch over "exprnd.m" in MATLAB and "exprnd.m" in dynare (but I think the authors of dynare should have considered that some of their functions have the same name with basic MATLAB functions).
You guys are really professional and helpful! I will try to accept both the answer from Steven Lord and Cris LaPierre (if possible). Have a nice day!

Categories

Find more on Programming in Help Center and File Exchange

Products

Release

R2022a

Asked:

on 14 Nov 2023

Commented:

on 15 Nov 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!