Borrar filtros
Borrar filtros

subs(a,b,1) introduces variable b into a?

1 visualización (últimos 30 días)
Raman
Raman el 7 de Oct. de 2014
Editada: Raman el 22 de Dic. de 2014
Hi,
This is a peculiar issue. I am using sym variables. My variable system_matrix has no dependence on the sym variable l, but when I run the line:
system_matrix = subs(system_matrix,l,10)
system_matrix all of a sudden has l introduced! if I run the same line again, it gets rid of it.
Code: -----------------
syms m b k1 k2 l rho U C
syms s
M = eye(2); K_H = [(k1+k2)/(m*b),((k1-k2)/(2*m))-C*rho*U^2/(2*m);6*(k1-k2)/(m*b^2),3*(k1+k2)/(m*b)-3*C*rho*U^2/(2*m*b)];
system_matrix = s^2.*M + K_H;
% substitute for values
system_matrix = subs(system_matrix,m,15);
system_matrix = subs(system_matrix,k1,5000);
system_matrix = subs(system_matrix,k2,4000);
system_matrix = subs(system_matrix,b,1);
system_matrix = subs(system_matrix,l,10); % for some reason this introduces new l's into the equation?
system_matrix = subs(system_matrix,C,1);
system_matrix = subs(system_matrix,rho,1.25);
----------------
end code
At the end of this expression, system_matrix has the variable l in it, even though it never did before!
Anyone know what is going on?

Respuestas (1)

Stefan Wehmeier
Stefan Wehmeier el 30 de Oct. de 2014
I cannot reproduce this. If it happens (in which version ??), then it is clearly unexpected.
  1 comentario
Raman
Raman el 22 de Dic. de 2014
Editada: Raman el 22 de Dic. de 2014
THis happens in 2012b. I simplified it to this:
syms m l;
system_matrix = [1,m/(10);1,1];
system_matrix = subs(system_matrix,l,10);
It appears that the function is replacing all instances of 10 with "l" instead of the other way.
I tried the same code in 2014a and it seems to be fixed.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by