How can I fix error "matrix dimensions must agree" in this code?
Afficher commentaires plus anciens
pd=makedist('normal', 'mu', 4.5, 'sigma', 1.25);
rang(1)
h=random(pd, 601,1);
b=5;
c:0.05;
S=1000;
betas=0.5;
betao=0.7;
y=linspace(0, 60, 100);
x=linspace(0, 60, 102);
[X,Y]=meshgrid(x,y);
Z=(sum((S-X+min(b*(max(0,h-6)),Y)-b*(max(0,h-6))).^(1-betao))/(1-betao))/lenght(h)...
+(0.7*sum(((X-(c\2)*6^2-min(b*(max(0,h-6)),Y)).^(1-betas))/(1-betas))/lenght(h)));
[X,Y,Z]=peaks;
contour(X,Y,Z,20)
7 commentaires
madhan ravi
le 17 Nov 2018
because S is a scalar and X is a matrix how can you subtract them???
Oscar Nieto-Cerezo
le 17 Nov 2018
per isakson
le 17 Nov 2018
@madhan, "S is a scalar and X is a matrix how can you subtract them", see Compatible Array Sizes for Basic Operations
Walter Roberson
le 17 Nov 2018
h is 601 x 1 . h-6 is the same size. max of 0 and that is the same size .
x is 100 long and y is 102 long so ndgrid of the two will make X and Y into 100 x 102.
You then try to min() between X of 100 x 102 and the result of the max at 601 x 1. Those sizes are incompatible .
What size were you expecting from the results of the min()?
madhan ravi
le 18 Nov 2018
@Per Isakson thank you
Oscar Nieto-Cerezo
le 19 Nov 2018
KSSV
le 19 Nov 2018
min(b*(max(0,h-6)),Y)
The above line shows error. The dimensions of input to min re different.
Réponses (0)
Catégories
En savoir plus sur Contour Plots dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!