The variable Edj appears to change size consider preallocating

조회 수: 2 (최근 30일)
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

채택된 답변

Gifari Zulkarnaen
Gifari Zulkarnaen 2020년 1월 1일
편집: Gifari Zulkarnaen 2020년 1월 3일
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
Stephen23
Stephen23 2020년 1월 3일
편집: Stephen23 2020년 1월 3일
"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 2020년 1월 3일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by