The variable Edj appears to change size consider preallocating

4 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Gifari Zulkarnaen
Gifari Zulkarnaen il 1 Gen 2020
Modificato: Gifari Zulkarnaen il 3 Gen 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 Commenti
Stephen23
Stephen23 il 3 Gen 2020
Modificato: Stephen23 il 3 Gen 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 il 3 Gen 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by