2009-12-13 24 views
5

Estaba haciendo un modelo para un mecanismo de manivela deslizable y quería mostrar un error cuando la longitud de la manivela excede la del brazo deslizante. Con la longitud de la manivela como r2 y los de control deslizante como r3, mi código era la siguiente:¿Cómo puedo mostrar un mensaje de error en MATLAB?

if r3=<r2 
    error('The crank's length cannot exceed that of the slider') 
end 

me sale el error:

???  error('The crank's length cannot exceed that of the slider') 
         | 
Error: Unexpected MATLAB expression. 

alguien puede decirme lo que estoy haciendo mal y cómo arreglarlo por favor?

Respuesta

2

creo que el operador de comparación debe ser <= no a la inversa, a menos que eso fue sólo un error tipográfico en su pregunta

también debe escapar el carácter ' usando ''

11

Cuando se desea utilizar el ' carácter de una cadena, que tiene que preceder con otro ' (tenga en cuenta el ejemplo de la documentation):

if (r3 <= r2) 
    error('The crank''s length cannot exceed that of the slider'); 
end 

Además, tenga en cuenta el cambio que hice desde =< a <=.

+2

¿Qué incluyendo los valores de tiempo de ejecución reales también? Muy útil para la depuración, especialmente una vez que su programa se hace más grande. error (la longitud de 'The crank' (% f) no puede exceder la del control deslizante (% f) ', r2, r3) –

2

Puede imprimir en el error de manejar, así:

fprintf(2,'The crank''s length cannot exceed that of the slider'); 
+1

Lenguaje incorrecto. La función de impresión de MATLAB es para imprimir una ventana de figura que contiene gráficos en una impresora, y \ no escapa '. –

+0

@Steve: tienes razón. Es 'fprintf', no' print' – Zaid

Cuestiones relacionadas