Subscripted assignment dimension mismatch
Mostra commenti meno recenti
Below is my code. When my program tries to calculate D, it gives me the error as stated in the title. the Varibles N, Eab, den, and V all produce a matrix of 1x47 values. I have tried removing the dot (.) from the equation's multiplication and divisons, but I still get errors (inner matrix dimnesions must agree). Any help is appreciated. Thank you.
row = 0;
col = 0;
for row = 1:1:420
for col = 1:1:420
N = No - No.*exp(-linavg*d);
Eab = E.*(lin./linavg);
D(row,col) = (N.*Eab)./(den.*V);
No = N*exp(-linavg*d);
end
col = col +1;
end
row = row+ 1;
3 Commenti
per isakson
il 4 Mar 2020
Modificato: per isakson
il 4 Mar 2020
What are the statemets
row = 0;
col = 0;
col = col +1;
row = row+ 1;
supposed to do?
Pre-allocate D before entering the for-loops
D = nan(420,420);
Left hand side of
D(row,col) = (N.*Eab)./(den.*V);
is a scalar and the right hand side is a 1x47 vector. That doesn't agree. What do you want to achieve with this statement?
Kira Bruce
il 4 Mar 2020
Aquatris
il 4 Mar 2020
Modificato: per isakson
il 4 Mar 2020
First of you do not need to specify col = col+1. When you define for col = 1:100, the for loop will increment the col variable every iteration
Secondly, do you want D to be a 3D matrix? If so,
D(row,col,1:47) = (N.*Eab)./(den.*V);
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Creating and Concatenating Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!