MATLAB Answers

# How to makedisk for a three parameter weibull distribution

7 views (last 30 days)
Mustafa Vural on 12 Sep 2020
Edited: Mustafa Vural on 17 Sep 2020
Everytime I run my code with below lines, it displays "Error using makedist (line 101). Invalid parameter name: t0"
t0 = 0.5;
b = 1:5;
T = 1:5;
dist = makedist('weibull','a',T,'b',b,'c',t0)
[h,p,adstat,cv] = adtest(data,'Distribution',dist)
How can I integrate a three parameter weibull distribution into "makedist"?
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Jeff Miller on 12 Sep 2020
MATLAB's Weibull distribution only allows 2 parameters, so you must handle the offset separately. Try this:
t0 = 0.5; %
b = 1.5; % you are using vector
T = 1.5; % same here too
dist = makedist('weibull','a',T,'b',b)
dataAdjusted = data - t0;
[h,p,adstat,cv] = adtest(dataAdjusted,'Distribution',dist)
##### 3 CommentsShowHide 2 older comments
Mustafa Vural on 13 Sep 2020
So like this? Sry I am very noob in matlab.
clear all;
n = 100;
t0 = 0.5;
b = 1:5;
T = 1:5;
for v_T= 1:length(T)
for v_b= 1:length(b)
data(:,v_b,v_T) = wblrnd(v_b,v_T, [n,1]) + t0;
end
end
for v_T= 1:length(T)
for v_b= 1:length(b)
dist = makedist('weibull','a',v_T,'b',v_b)
dataAdjusted = data - t0;
[h,p,adstat,cv] = adtest(dataAdjusted,'Distribution',dist)
end
end

Sign in to comment.

### More Answers (1)

VBBV on 12 Sep 2020
Edited: VBBV on 12 Sep 2020
you are using vector of values for 2 parameters and scalar value for other parameter ... try this
%if true
% code
%end
t0 = 0.5; %
b = 1.5; % you are using vector
T = 1.5; % same here too
dist = makedist('weibull','a',T,'b',b,'c',t0)
[h,p,adstat,cv] = adtest(data,'Distribution',dist)
##### 1 CommentShowHide None
VBBV on 12 Sep 2020
Standard matlab weibull only allows 2 parameter dist as Jeff said But you can use mle to fit a custom distribution Here is the resource below how to do it

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!