Matlab - Error dimensiones de matriz

 
Vista:

Error dimensiones de matriz

Publicado por Maria (6 intervenciones) el 22/07/2009 09:46:47
Hola,

Estoy calculando un función definida a trozos en Matlab, para poder representarla. Pero al
calcular la función me da un error:

"Error using ==> mtimes

Inner matrix dimensions must agree."

Os adjunto la función y los valores que he asignado para ver si alguine me puede ayudar.

x=0:0.01:500;

hl=8; hr=3;
uu=0;
hh=5;
alfa=0.1;
t=5;
l1=3;
l2=2;

%Función

h2=(hl+alfa*x-alfa*t*uu)*((x/t)<l1)+((1/2)*(hl+hr)+alfa*x-alfa*t*uu)*(((x/t)>l1)&((x/t)<l2))+(hr+alfa*x-alfa*t*uu)*((x/t)>l2);

plot(x,h2);

Gracias

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error dimensiones de matriz

Publicado por ramiro (54 intervenciones) el 23/07/2009 17:25:52
Hola, debes escribir un punto de separcaión entre las variables y el signo de la operación realizar, siempre que multipliques, eleves a una potencia o dividas variables en matlab. Por ejemplo si quisieras multiplicar las variables x, y deberías escribir x.*y, la división entre x , y x./y y x a la y , se escribiría como x.^y.
Si está bien escrita tu función seccionada, quedaríaa así:
>> h2=(hl+alfa*x-alfa*t*uu).*((x/t)<l1)+((1/2)*(hl+hr)+alfa*x-alfa*t*uu).*(((x/t)>l1)&((x/t)<l2))+(hr+alfa*x-alfa*t*uu).*((x/t)>l2);
Nota el puntito que separa los dos primeros paréntesis,...
Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por fismat (391 intervenciones) el 23/07/2009 22:44:13
Hola

Te recomiendo que la función la evalues por partes, por que veo que hay condiciones logicas dentro de h2.

Saludos
Fismat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por Juan (1 intervención) el 25/05/2015 06:44:24
Te amo!!!!!! acabo de salvar el semestre (y mi pc) gracias a lo del "puntito que separa los dos parentesis" aunque no entiendo porque, si me pudieras explicar... :3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por tomas (1 intervención) el 16/06/2010 16:24:57
x es un vector, deves poner un punto delante del signo de * y de / para indicar que se pretendre operar con los elementos del vector i no con el vector en si.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por sergio (1 intervención) el 21/09/2011 03:14:23
q mas bn o q?¡¡

tengo un error parecido, agradezco si alguien me puede ayudar, estoy tratando de graficar

??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> senaless at 13
y = (y1*(t<2)) + (y2*(-2<t & t<=0))+ (y3*(0<t & t<=1)) + (y4*(4<t & t<=8))+ (y5*(8>t));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

RE:Error dimensiones de matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 21/09/2011 06:05:28
Hola Sergio.

Debes poner todo el programa completo.
porque no defines como son: y1, y2, y3, y4, y5.
Tu pregunta esta mal planteada.


saludos
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por saidsim (1 intervención) el 11/07/2012 03:06:18
disculpen yo tengo el mismo problema de
Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> jacobi at 11
X(j)=(b(j)-A(j,[1:j-1,j+1:N])*p([1:j-1,j+1:N]))/A(j,j);

ayudenme por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por fernando (1 intervención) el 26/08/2012 06:55:42
se coloca un punto delante de * / ^ etc en general de cualquier operacion de vectores para indicar que se esta operando con cada elemento del vector y no con todo el vector ejemplo
este es codigo para el movimiento de un mecanismo biela manivela :

phi=asin((R/L)*sin(thetarad));

x=R*cos(thetarad)+L*cos(phi)-(R+L);

phi1=(R*theta1r/L)*(cos(thetarad)./cos(phi));

x1=-R*sin(thetarad)*theta1r-L*sin(phi).*phi1;

phi2=(-R*sin(thetarad)*theta1r^2+R*cos(thetarad)*theta2r+L*sin(phi).*phi1.^2)./(L*cos(phi));

x2=-R*cos(thetarad)*theta1r^2-R*sin(thetarad)*theta2r-L*cos(phi).*phi1.^2-L*sin(phi).*phi2;


fijense donde van los puntos ok espero te aya servido bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por paty (1 intervención) el 09/07/2015 05:46:39
buenas noche tengo un error cuando le pongo esta funcion xq necesito ayuda


1
2
3
4
5
6
7
8
9
10
11
function [ sonidoN ] = normalizar( sonido )
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
maximo=max(abs(sonido));
n=length(sonido);
sonidoN=zeros(1,n);
    for i=1:n
    sonidoN(i)=sonido(i)/maximo;
    end
 
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por Marcos (2 intervenciones) el 07/07/2016 00:56:40
Por favor ayuda con este programa:

1
2
3
4
5
6
7
8
9
10
11
>> x=0:0.01:5;
To=besseli(0,x);
T1=besseli(1,x);
F=60;
W=2*3.14*F;
u=4*3.14*10^-7;
p=1.73*10^-8;
I=1;
K=[(-i*W*u)./(p)].^(1/2);
r=[0:0.01:25.40];
>> J=[(K*I*To).*(K*r)]/[(2*3.14).*(r*T1).*(K*r)];

??? Error using ==> times
Matrix dimensions must agree.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

RE:Error dimensiones de matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 12/07/2016 17:08:47
1
2
3
4
5
6
7
8
9
10
11
12
>> clear all
x=0:0.01:5;
To=besseli(0,x);
T1=besseli(1,x);
F=60;
W=2*3.14*F;
u=4*3.14*10^-7;
p=1.73*10^-8;
I=1;
K=((-i*W*u)./(p)).^(1/2);
r=linspace(0,25.40,length(To));  %0:0.01:25.40;
 J=((K*I*To).*(K*r))/((2*3.14)*(r.*T1).*(K*r));



1
2
3
4
5
6
7
8
9
10
11
12
13
14
>> whos
  Name      Size             Bytes  Class     Attributes
 
  F         1x1                  8  double
  I         1x1                  8  double
  J         1x1                 16  double    complex
  K         1x1                 16  double    complex
  T1        1x501             4008  double
  To        1x501             4008  double
  W         1x1                  8  double
  p         1x1                  8  double
  r         1x501             4008  double
  u         1x1                  8  double
  x         1x501             4008  double







Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Programador en Matlab
Servicios de programación matlab
[email protected]
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error dimensiones de matriz

Publicado por Jaime Andrade Moreno (1 intervención) el 26/01/2017 06:21:22
Buena Noche,

Yo puse solucionar el inconveniente de la siguiente manera, al momento de operar las dimensiones no son iguales, por lo cual, al momento de captar la señal de audio lo realice de la siguiente manera. y1 = audiorecorder(fs,24,1); Con esto logrando que el audio sea mono.

Con esto ejecutando la normalizar de la señal

1
2
3
4
5
6
7
function sonidoN = normalizar(sonido)
maximo = max(abs(sonido));
n = length(sonido); %Calcula el tamaño del vector
sonidoN = zeros(n,1);
for i = 1:1:n
    sonidoN(i)= sonido(i)./maximo;
end

A mi me funciono, espero que sea de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar