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

1 visualizzazione (ultimi 30 giorni)
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

Risposte (2)

James Tursa
James Tursa il 22 Mar 2019
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 Commenti
James Tursa
James Tursa il 22 Mar 2019
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

Accedi per commentare.


Sevil Cansu Yildirim
Sevil Cansu Yildirim il 22 Mar 2019
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)

Categorie

Scopri di più su Fluid Mechanics 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