MATLAB Multithreading, fácil (1 / 1 paso)

Paso 1: código de

necesita matlab y un editor de texto: use cualquier Bloc de notas que viene con windows (buscar notepad.exe) o el editor de archivos m de matlab (archivo-nuevo-mfile). Esta trabajado con matlab 6.5 (R13) y matlab 7 (R14) pero tengo problemas para usarlo con matlab r2007a.

1) Descargar el archivo de código y wav adjunto a este paso (Código y Wav archivo.rar), éste es un archivo comprimido, necesitarás winzip o winrar para descomprimirlo. Nota: porque instructables se retarda ligeramente este archivo se descarga como algo parecido a FLSKW9EFHIK6H6V.tmp, por lo que tendrás que renombrarlo a something.rar (molesto, pero no es mi culpa).
2) salvar a ambos de estos (código y wav archivo) en el directorio de 'trabajo' de matlab (facilita las cosas)
3) abrir matlab
4) tipo en mex mythreadprog.cpp
4.5) Nota: si es la primera vez que utiliza el compilador de mex en matlab, tipo mex-setup antes paso 4 para elegir el compilador que desea utilizar.
5) cuando hago esto en mi matlab me sale una 'ADVERTENCIA de línea de comandos', pero él no efecto nada
6) tipo de hullo = 1, éste Inicializa una variable utilizada por el archivo de mex (si no haces este matlab caerá)
7) para ejecutar el tipo de archivo de mex en mythreadprog

8) en el prompt de matlab se verá Val #
donde # es el valor de hullo, oirá también el fichero wav jugar 7 veces, el tiempo entre cada reproducción del archivo wav (1 segundo * hullo), por lo que al escuchar el sonido que está siendo reproducido puede cambiar el valor de hullo (hullo = 5, casco = 3, etc.) y se puede oír el hilo de mex teniendo esto en cuenta (habrá pausas de diferente longitud como se cambia el valor de hullo de matlab)
Tenga en cuenta que matlab devuelve el control a usted imediately a pesar de que el hilo sigue funcionando en segundo plano.

9) Si desea que el subproceso para imprimir los valores cambiantes en el prompt de matlab puede descomentar _both_ de las líneas etiquetadas //---for prueba--- en el código

Nota: Si usted sólo Quite el comentario de la mexPrintf en el hilo y no el sueño en mexFunction matlab se estrellará. Esto es porque tienes que enviar una devolución de llamada a matlab después la mexFunction ha terminado. Si quieres tener el hilo de enviar información a matlab después la mexFunction ha dejado es más compicated (aka. No sé cómo, búscala en google).

#include < windows.h >
#include < stdlib.h >
#include < string.h >
#include < stdio.h >
#include < conio.h >
#include < process.h > //used para hilo
#include "mex.h"
#include < mmsystem.h > //used de sonido
#pragma Comentario (lib, "winmm.lib") //used de sonido

cdecl void MyThread(LPVOID pVoid);

//######################################################
### - función principal mex--###
//######################################################
void mexFunction (int nlhs, mxArray * plhs,
int nrhs, *prhs[]) mxArray
{
int ThreadNr; para el hilo

iniciar su cadena de
_beginthread (MyThread, 0 & ThreadNr);

---para probar---
Sleep(20000); hará la función de mex permanecer alrededor de 20 segundos para que pueda ver el mexPrintfs del hilo Si quieres
}

//################################################
//##########--Thread Code--#########################
//################################################
void cdecl MyThread(LPVOID pVoid)
{
declarar tus variables/indicadores
int x = 0; se usa para ajustar el número de mientras bucles
const mxArray * MiArray; utiliza para ayudar a extraer el valor de su variable de matlab
doble * TempPointer; utiliza para ayudar a extraer el valor de su variable de matlab
Val doble; contiene el valor de la variable de matlab

---Configurar tus punteros antes de entrar en el bucle de hilo, de esta manera que no tenemos que hablar
---a matlab en una vez entrar en el hilo (que simplemente accederán el matlab
---localización de memoria de variables). Esto es útil porque muchos realmente rápida comunicación con
---matlab lo puede fallar.
obtener un puntero a un puntero a la variable hullo (que se debe inicializar en matlab antes de ejecutar este prog)
MiArray = mexGetVariablePtr ("base", "hullo"); puede ser llamada base o global
obtener el valor de la variable hullo de los punteros, almacén en Val
TempPointer = mxGetPr(myarray);

while(x<10)
{
x ++;

Aquí estamos accediendo a ubicación de memoria de la variable matlab sin tener que hablar con matlab
Val = * TempPointer;

reproducir un sonido
PlaySound ("alleluia.wav", NULL, SND_FILENAME | SND_SYNC);
Espere entre sonidos Val segundos
Sleep(1000*Val);

---para probar---
mexPrintf("Val:%f", Val);
}
}

Artículos Relacionados

Arduino y Matlab: deje que ellos hablan utilizando comunicación serial!

Arduino y Matlab: deje que ellos hablan utilizando comunicación serial!

Hola todo el mundo!desde cuando he empezado a jugar con Arduino, he siempre sido vagando como hacerlo hablar e interactuar con el entorno de Matlab de una forma fácil y eficaz. Golpea en muchos Instructables y tutoriales sobre Arduino bibliotecas y a
Mapmaker ultrasónica utilizando Arduino y MatLab

Mapmaker ultrasónica utilizando Arduino y MatLab

visión es uno de los sentidos más emocionantes que puede dotar a su robot. La capacidad para percibir obstáculos permite a un robot tomar una decisión educada sobre los otros movimientos.Sin embargo, también no es los sentidos más fácil implementar p
Imagen proceso y contando con MATLAB

Imagen proceso y contando con MATLAB

Esto es divertido basado en imagen con MATLAB, aquí encontraremos learing cómo contar el número de objetos distinguibles en una imagen. Suena divertido, se... Así permite comenzar!El siguiente tutorial se realiza con la ayuda de MATLAB. MATLAB está p
MATLAB para interfaz serial PIC

MATLAB para interfaz serial PIC

algun codigo para que MATLAB hable a un PIC16f877 vía el puerto serial. Esto no es tan difícil ni es mucho código, pero pasé una cantidad decente de tiempo calcular todo (empezar desde cero), así que pensé que sería útil. Disfrutar.Paso 1: Código con
Conceptos básicos de MATLAB

Conceptos básicos de MATLAB

este instructable cubrirá algunas de las funciones más básicas del matlab. Usted aprenderá cómo hacer que matlab ejecuta internamente una función periódica y trama y cómo la misma función periódica desde un archivo de excel en su lugar y lo trama de.
Cómo programa AVR microcontroladores, barato y fácil

Cómo programa AVR microcontroladores, barato y fácil

Este instructivo se guía usted paso a paso cómo hacer un sencillo programa en un microcontrolador ATMEGA (uC). Si usted don´t conoce acerca de cómo el código se almacena en microcontroladores, básicamente hay 3 pasos que usted puede tomar y que estam
Tutorial básico de Arduino/O-Matlab

Tutorial básico de Arduino/O-Matlab

este es mi primer instructables y yo fui referido por un miembro antiguo. Su enlace aquí:)Su una ilustración simple de cómo podemos conectar Arduino a Matlab y realmente controlar y obtener información sobre Arduinousando MatlabHe visto algunos tutor
Lectura de RPM del tacómetro de infrarrojos basados en Arduino con GUI de MATLAB

Lectura de RPM del tacómetro de infrarrojos basados en Arduino con GUI de MATLAB

Hola otra vez, un par de días atrás publiqué un instructable de tacómetro infrarrojo usando arduino, entonces me di cuenta que en lugar de leer el valor RPM en el monitor serial IDE de Arduino, presentando las RPM en un marco de adecuada sería más al
¿Cómo utilizar la API de MATLAB/Octave Plotly

¿Cómo utilizar la API de MATLAB/Octave Plotly

te has preguntado sobre los campos electromagnéticos (CEM) alrededor de una línea de alta tensión? Recientemente publiqué un post sobre ello en mi blog y pensé que esto sería una oportunidad perfecta para probar usando plot.ly.En este instructable, t
Programa de proximidad MATLAB CAT

Programa de proximidad MATLAB CAT

programa de ingeniería de la Universidad de Boston tiene estudiantes de primer año todo Ingeniería Ingeniería de cómputo, una clase enseñando el lenguaje de programación MATLAB (abreviatura de Matrix laboratorio). MATLAB es un lenguaje basado en C qu
Ploteo de datos usando MATLAB

Ploteo de datos usando MATLAB

En este tutorial usted aprenderá cómo utilizar el programa MATLAB de MathWorks para crear un archivo de secuencia de comandos que hacen un conjunto de datos y trazar los datos. Esta es una herramienta muy útil en todo tipo de científico e investigaci
Introducción al uso de Simulink en MatLab

Introducción al uso de Simulink en MatLab

MatLab es una herramienta útil para escribir programas para realizar matrices y funciones de orden superior. En algún momento aunque, tamizar a través de, o escribir líneas de código puede ser tedioso y abrumador. Hay una parte de MatLab sin embargo
¿YEAAAUGH, WHHAT? OKKKAY! ¿Botón fácil de Lil Jon

¿YEAAAUGH, WHHAT? OKKKAY! ¿Botón fácil de Lil Jon

alguna vez ha deseado el Staples Easy Button (R) podría decir algo mejor que lo mundano "Que fue fácil."? ¿Qué tal un botón de Lil Jon?YEAAAUGH, OKKKAY!¡Vamos!Paso 1: Lo que se necesita (y donde conseguirlo): Nota: se necesita una forma de progr
Forma fácil y asequible (guía) para coche RC casero.

Forma fácil y asequible (guía) para coche RC casero.

Hola todo el mundo./ * ESTE ES MI PRIMER INSTRUCTABLE. SER TAN AMABLE CONMIGO. SOY GRAN FAN DE INSTRUCTABLE DE MUCHO TIEMPO, ME AYUDÓ MUCHO. AHORA PUBLICAR MI PROPIA POR LO QUE PUEDE AYUDAR A OTROS LECTORES COMO YO. POR FAVOR ME DEN SUGERENCIAS. QUIE