/ / Generación de datos / números aleatorios controlados en MATLAB - matlab, random

Número aleatorio controlado / generación de datos en MATLAB - matlab, random

Digamos, tengo un cubo de dimensiones 1x1x1 abarcandoentre coordenadas (0,0,0) y (1,1,1). Quiero generar un conjunto aleatorio de puntos (supongamos 10 puntos) dentro de este cubo que están distribuidos de manera un tanto uniforme (es decir, dentro de cierta distancia mínima y máxima entre sí y también no muy cerca de los límites). ¿Cómo hago para esto sin usar bucles? Si esto no es posible utilizando operaciones vectoriales / matriciales, la solución con bucles también funcionará.

Déjame proporcionar algunos detalles más sobreMi problema (esto ayudará en términos de lo que necesito exactamente y por qué). Quiero integrar una función, F (x, y, z), dentro de un poliedro. Quiero hacerlo numéricamente como sigue:

$ F (x, y, z) = sum_ {i} F (x_i, y_i, z_i) veces V_i (x_i, y_i, z_i) $

Aquí, $ F (x_i, y_i, z_i) $ es el valor de la funciónen el punto $ (x_i, y_i, z_i) $ y $ V_i $ es el peso. Así que para calcular la integral con precisión, necesito identificar un conjunto de puntos aleatorios que no estén muy cerca unos de otros o que no estén muy lejos unos de otros (Lo siento, pero yo mismo no sé qué es este rango. Podré calcular Esto se hace utilizando el estudio paramétrico solo después de que tengo un código de trabajo. Además, necesito hacer esto para una malla 3D que tiene múltiples poliedros, por lo tanto, quiero evitar los bucles para acelerar las cosas.

Respuestas

2 para la respuesta № 1

Echa un vistazo a esta bonita Generador de vectores aleatorios con suma fija. Archivo FEX. El código "genera m vectores de valores de columna de elementos n aleatorios, [x1; x2; ...; xn], cada uno con una suma fija, s, y sujeto a una restricción a <= xi <= b. Los vectores son Se distribuye de manera aleatoria y uniforme en el espacio dimensional n-1 de las soluciones. Esto se logra descomponiendo ese espacio en varios tipos de simplexes diferentes (las generalizaciones multidimensionales de segmentos de líneas, triángulos y tetraedros). La función "rand" se utiliza para distribuir vectores dentro de cada simplex de manera uniforme, y las llamadas adicionales al "rand" sirven para seleccionar diferentes tipos de simplexes con probabilidades proporcionales a sus respectivos volúmenes dimensionales n-1. Este algoritmo no realiza ningún rechazo de soluciones, todo se genera de manera que En cuanto a que ya encajan dentro del hipercubo prescrito ".


1 para la respuesta № 2

Utilizar i=rand(3,10) donde cada columna corresponde a un punto y cada fila corresponde a la coordenada en un eje (x, y, z)