with variable tipos syms sym simbolicas empty ejemplo declarar matlab variables

tipos - Matlab: enlace a variable, no a valor variable



tipos de variables en matlab (4)

En MATLAB, esto no es posible. Sin embargo, hay muchas maneras de obtener un comportamiento similar. Por ejemplo, podría tener una matriz a = [1, 5, 3, 1] y luego indexarla por x e y . Para x = 2 , puede asignar a(x) = 7 , y = x , y una vez que cambie a(x) = 4 , a(y) == 4 .

Por lo tanto, la indexación puede ser la forma más rápida de emular las referencias, pero si quiere una solución elegante, puede ir a través de variables simbólicas como señala @natan. Lo importante de esto es que no hay punteros en MATLAB.

Ha sido muy difícil usar google, la documentación de MATLAB, he pasado unas horas, y no puedo aprender cómo

x = 1 y = x x = 10 y ans = 10

lo que sucede en cambio es:

x = 1 y = x x = 10 y ans = 1

El valor de x se almacena en y. Pero quiero actualizar dinámicamente el valor de y para igualar x.

¿Qué operación uso para hacer esto?

Gracias


Matlab tiene un 99% de entorno de valor por paso, que es lo que acaba de demostrar. El 1% que se pasa por referencia se maneja, ya sea manejar gráficos (no relevante aquí) o manejar clases, que son bastante cercanas a lo que desea.

Para usar una clase de control para hacer lo que describes, coloca lo siguiente en una llamada de archivo RefValue .

classdef RefValue < handle properties data = []; end end

Esto crea una clase "manejar", con una sola propiedad llamada "datos".

Ahora puedes intentar:

x = RefValue; x.data = 1; y = x; x.data = 10; disp(y.data) %Displays 10.


También puede definir un identificador implícito en x definiendo una función en y haciendo referencia a ella:

x = 1; y = @(x) x; y(x) % displays 1 x = 10; y(x) % displays 10


puedes probar algo de lo siguiente;

x=10; y=''x'' y y = x eval(y) x = 10