2013-08-07 9 views
5

Devo riscrivere un codice MATLAB in C che verrà quindi incorporato nuovamente in Matlab utilizzando nuovamente MEX. Finora, ho letto alcuni tutorial ed esempi su come funziona per semplici strutture di dati. (Non l'ho mai fatto prima, anche se mi considererei esperto sia in Matlab che in C).Accesso alle classi Matlab nel codice MEX/C

Così qui è il problema:

ho dato qualcosa di simile

classdef MyClass 
    properties 
      foo; 
      bar; 
      blub; 
      somethingElse; 
    end 

    methods 

      function obj = myFun(obj) % really just some random example code 
       obj.foo = obj.bar; 
       obj.blub = 42; 
       for i = 1:length(obj.somethingElse) 
        obj.somethingElse(i) = i*i; 
       end; 
      end 
    end 
end 

voglio riscrivere myFun come/C-Funzione MEX. Se passo una classe a una funzione MEX, come posso accedere alle diverse proprietà di questa classe?

Grazie

risposta

9

Hai le seguenti funzioni nell'API MEX:

mxGetProperty e mxSetProperty

Il loro uso è equivalente a:

value = pa[index].propname; 

pa[index].propname = value; 

Si noti che questi le funzioni creano de ep copie dei dati. Ci sono undocumented functions per lavorare con dati condivisi.

Problemi correlati