Using a Variable between different functions
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Gözde Üstün
el 21 de Jun. de 2020
Comentada: Gözde Üstün
el 25 de Jun. de 2020
Hello,
I have this two function. evAlice and evBob were defined in CHSH_ but I need to access themin basis function. But I could not know how can I access to evAlice and evBob in basis fucntion.
function [coin, I] = CHSH_(sigma_x,sigma_z)
ev1_of_alice = sigma_x;
ev2_of_alice = sigma_z;
ev1_of_bob = sigma_x+sigma_z;
ev2_of_bob = sigma_x-sigma_z;
evAlice=[sigma_x,sigma_z];
evBob=[sigma_x+sigma_z,sigma_x-sigma_z];
... %function is too long so I just put the relevant part
end
function [basis_mat] = basis(measurement_setting)
% Choose the correct basis depending on the
% measurement setting. If you change the observables,
% these are obtained by diagonalization
switch measurement_setting
case evAlice(0)
basis_mat = [1, 1; 1,-1]/sqrt(2);
case evAlice(1)
basis_mat = [1, 0; 0, 1];
case evBob(0)
basis_mat = [ 1+sqrt(2), 1-sqrt(2); 1, 1];
case evBob(1)
basis_mat = [-1-sqrt(2),-1+sqrt(2); 1, 1];
end
end
0 comentarios
Respuesta aceptada
the cyclist
el 21 de Jun. de 2020
Editada: the cyclist
el 21 de Jun. de 2020
You can pass them out of the first function:
function [coin, I, evAlice, evBob] = CHSH_(sigma_x,sigma_z)
and into the second one by calling it like this
basis(measurement_setting, evAlice, evBob)
and defining it as
function [basis_mat] = basis(measurement_setting, evAlice, evBob)
Alternatively, you could define those variables as global in scope, in both functions, but that is generally a bad idea.
4 comentarios
Stephen23
el 22 de Jun. de 2020
Editada: Stephen23
el 22 de Jun. de 2020
"Instad of that can I use global variable or is this better ?"
Global variables: slower, more buggy, harder to debug, obfuscate the code intent.
Input/output variables: faster, easier to debug, recommended by the MATLAB documentation as "best practice":
If you have lots of arguments then put them into a structure and pass that.
Más respuestas (0)
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!