• Martes 15 de Julio de 2025, 05:16

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - fernandovallecordoba

Páginas: [1]
1
C/C++ / mexxFunction Matrices??
« en: Sábado 21 de Febrero de 2009, 02:03 »
Hola, quisiera saber si alguien me podría echar una mano. Tengo un programa en matlab el cual tengo que pasar a C.
La idea es que la funcion reciba una matriz (bidimensional de double) por parametro y trabaje con ella. Mi problema es que no se como hacer que la matriz que recibo en la mexFunction pueda luego usarla en otras funciones. Mi idea es poder hacer lo siguiente:

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){

        prhs[0] = mxCreateDoubleMatrix(rowLen, colLen, mxREAL);
        x = mxGetPr(prhs[0]);

       funcion(x);
}

void funcion(double* x){

       double a;
       a=x[2][2]
}

Pero entre que me lio aun con los punteros y no se exactamente en que formato llegan los datos a la mexFunction... Sólo quiero poder usar la matriz en otra funcion, no debe ser muy dificil...
Pero no se si tengo q hacer un array de vectores o si ya esta la memoria reservada... Además, mxCreateDoubleMatrix parece que crea un vector (1 dimension) no una matriz no??

Muchas graciass.

2
C/C++ / Matrices C++ !!
« en: Domingo 19 de Octubre de 2008, 21:42 »
Hola,

tengo que hacer un programa en C++ y la verdad es que ando perdido con el tema de las matrices. Tengo que pasar un programa hecho en matlab a C++, y claro este último el tema de las matrices y arrays parece que es bastante chungo.

Os dejo aqui mi consulta por si alguien pudiera ayudarme. Muchisimas gracias.

Basicamente el problema es que quiero declarar una variable global que sea una matriz de double, pero no se el tamaño ni el contenido de la misma, pues se calcula cuando llamo a una funcion. La idea seria algo asi:


#include <math.h>
#include "matrix.h"
#include "mex.h"
...

double K[][];
void etapsvmSMO();
..


void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
...
...
}

void etapsvmSMO(){

K = gaussiankernel(...);

}


Y esa es la historia, no se como hacer para no tener que indicar el tamaño del array al declararlo, ya que no lo sé, depende de cuando llame a gaussiankernel(...)... alguna idea?

graciassss,fer.

Páginas: [1]