Matlab - Ayuda Matlab avanzado

 
Vista:

Ayuda Matlab avanzado

Publicado por Camilo Sarmiento (2 intervenciones) el 06/11/2015 16:58:56
tengo varías preguntas que no he podido dar con ellas porque no se como funciona la programacion orientada a objetos en matlab

no adjunto ejemplos porque son más que todo teorícas

1) como funciona la sobrecarga de metodos porque los he sobrecargado en la misma clase y me genera error
2)como puedo pasar un parametro por referencia en un metodo en matlab

gracias espero puedan ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda Matlab avanzado

Publicado por Royeth (1818 intervenciones) el 06/11/2015 17:16:34
1) bueno primero que todo la sobrecarga de métodos en Matlab funciona de manera muy diferente a lo que es la programación orientada a objetos común , pienso yo que es porque es un programa que no compila para ejecutar a diferencia de los programas pilares de la programación orientada a objetos , entonces debido a esto la sobrecarga la debes hacer a una función que ya exista en matlab escribes el mismo nombre de dicha función y ya ahí estarías haciendo la sobrecarga . Si la función o el método no existe en Matlab y deseas construirlo y sobrecargarlo debes valerte de nargin ( número de argumentos de entrada) y de condicionales para poder en una misma función colocar varios métodos , ya que Matlab no permite tener métodos con un mismo nombre

2) para pasar un parámetro por referencia debes hacer que la clase tome herencia de la superclase handle


aquí te muestro un ejemplo de la sobrecarga del método suma y del parámetro por referencia en el método aumentar

:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classdef miclase <handle
    properties
        r
    end
    methods
        function ob=miclase(r)
ob.r=r;
        end
        function aumentar(obj)
obj.r=obj.r+1;
        end
 function obj3=aumentar(obj1,obj2)
ob3.r=obj1+obj2;
        end
    end
end


puedes probar :
a=miclase(5);
aumentar(a); %lo aumenta a 6
a+a% ya puedes sumar dos objetos para crear otro

saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Matlab avanzado

Publicado por Camilo Sarmiento (2 intervenciones) el 06/11/2015 17:31:32
Gracias por la pronta respuesta royeth auqnue todavia se me hace compleja la forma como lo toma matlab
gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar