¿Cómo puedo resolver este error de MATLAB "Las dimensiones de la matriz deben estar de acuerdo"?

Estoy escribiendo algún código para una clase, pero cada vez que ejecuto la función aparece el mismo error:

??? Error using ==> plus
Matrix dimensions must agree.

Error in ==> Test at 6
f32=3.*exp((-x2.^2-y1.^2)./3);

Sé que el problema es un simple error de índice, pero parece que no puedo encontrarlo en ningún lado. ¿Puede alguien ayudarme

También tengo el mismo problema con la siguiente línea de código:

f34=(exp(-0.3./x2))./(log(y2).*sqrt(x2));

EDIT # 1:

x2 Se define como0:0.1:5 yy1 Se define como-5:0.1:5, pero eso es lo que me han asignado para definirlos como. Y sé que exp no es una función porque lo he usado en otra parte de mi archivo.

EDIT # 2:

OKAY. Entonces, si no puedo usar mi xey actual, ¿puedo definirlos para mantenerlos en esos límites y al mismo tiempo hacerlos del mismo tamaño?

Respuestas a la pregunta(2)

¿Cómo esperas-x2.^2-y1.^2 para trabajar cuandox2 yy1 es de diferente tamaño? @x2=0:0.1:5 tiene aproximadamente cincuenta entradas mientras quey1=-5:0.1:5 tiene un centenar de entradas.

ACTUALIZAR

OK, ahora que ha confirmado que sus variablesx2 yy1 contiene diferentes números de elementos, tiene un par de soluciones para elegir:

Para cada variable, puede crear un número establecido de valores sobre los rangos respectivos utilizando la función LINSPACE. Por ejemplo

x2 = linspace(0,5,101);   %# 101 values spanning the range 0 to 5
y1 = linspace(-5,5,101);  %# 101 values spanning the range -5 to 5

Sin embargo, cuando calcula el resultadof32 (que también será una matriz de 101 elementos), solo se evaluará en los respectivos pares de valores enx2 yy1 (p.ej.x2(1) yy1(1), x2(50) yy1(50), etc.).

Si prefieres evaluarf32 acad par único de puntos en los rangos dex2 yy1, deberías usar la función MESHGRID para generar tus valores. Esto también le permitirá tener un número diferente de puntos en los rangos dex2 yy1:

[x2,y1] = meshgrid(0:0.1:5,-5:0.1:5);

Lo anterior crearáx2 yy1 como matrices de 101 por 51 de modo quef32 también será una matriz de 101 por 51 evaluada en todos los puntos en los rangos de valores dados.

Respuesta anterior:

Lo primero que debe probar es si todas las variables que está poniendo en la ecuación son del mismo tamaño o valores escalares, que tendrían que ser ya que está utilizando operadores de elementos como.^ y.*. Para la primera ecuación, vea qué salida obtiene cuando hace esto:

size(x2)
size(y1)

Si dan el mismo resultado, o cualquiera de ellos es[1 1], entonces ese no es tu problema.

o siguiente que debe verificar es si ha sombreado o no la EXP función creando una variable con el nombreexp. Si está ejecutando el código como un script en la ventana de comandos, escribawhos y ver si una variable llamadaexp aparece. Si es así, debe eliminarlo o cambiarle el nombre para poder usar lafunció EXP.

Su respuesta a la pregunta