Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.

1 回表示 (過去 30 日間)
Hello,
farfieldvelocity = [-100:.01:100] % velocity est.
lockingdepth = [-100:.01:100] % locking depth est.
for i = 1:length(lockingdepth);
for j = 1:length(farfieldvelocity);
v_e_est = (farfieldvelocity(j)./ pi).* atan(dist./lockingdepth(i));
e = v_est - v_e;
CF(j,i) = e'*e;
end
end
Here I always get the error "Unable to perform assignment because the indices on the left side are not compatible with the size of the right side." for the line CF(j,i) = e'*e

回答 (2 件)

James Tursa
James Tursa 2019 年 3 月 22 日
What is size(dist) and size(v_e)? If these are row vectors, then maybe you need to do e*e' instead to get a scalar result.
  4 件のコメント
James Tursa
James Tursa 2019 年 3 月 22 日
From Sevil:
I am sorry but did not work.
James Tursa
James Tursa 2019 年 3 月 22 日
Sorry I misread your variables. What is size(v_est)? And what is the variable v_e_est supposed to be used for? Is this what was meant:
e = v_e_est.' - v_e; % make e a column vector

サインインしてコメントする。


Sevil Cansu Yildirim
Sevil Cansu Yildirim 2019 年 3 月 22 日
for i = 1:length(lockingdepth);
for j = 1:length(farfieldvelocity);
v_e_est = (farfieldvelocity(j)./ pi).* atan(dist./lockingdepth(i));
e = v_e_est - v_e;
CF(j,i) = e.*e';
end
end
I am sorry.
Here, e is the error whic is the difference between v_e_est (v_e estimated) and (v_e observed).
cf is the cross function, which minimize the error. (e'*e is for that, leat squares method)

カテゴリ

Help Center および File ExchangeTables についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by