The variable Edj appears to change size consider preallocating

3 vues (au cours des 30 derniers jours)
Jacob Muvingi
Jacob Muvingi le 1 Jan 2020
Commenté : Jacob Muvingi le 3 Jan 2020
VV(1:size(temp,1),d)=temp;
for j=1:n
E(d,j) = y(j,:)*VV(s+1:s+m,d) / (x(j,:)*VV(1:s,d));
end
Ecros =sum(Edj)/n
End

Réponse acceptée

Gifari Zulkarnaen
Gifari Zulkarnaen le 1 Jan 2020
Modifié(e) : Gifari Zulkarnaen le 3 Jan 2020
The size of your matrix changes at every iteration. Make zero matrix before looping. For example:
Edj = zeros(d,n);
*edited for corrections from Image Analyst and Jacob Muvingi
  5 commentaires
Stephen23
Stephen23 le 3 Jan 2020
Modifié(e) : Stephen23 le 3 Jan 2020
"So should I write Edj=zeros(d,n);"
No, you should write what Image Analyst told you.
"I am still getting the same error..."
It is a warning, not an error.
"...after I have done the following;"
Array preallocation needs to be before the loop, e.g.:
E = zeros(d,n);
for j = 1:n
E(d,j) = ...
end
Jacob Muvingi
Jacob Muvingi le 3 Jan 2020
The issue of preallocation seem to have resolved, however getting message Matrix dimensions must agree referring to line for calculation of E(d,j). My matrices are of different sizes, y is 1*12, x is 2*12. V are weights for each x and y value.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by