xlabel rectangulo graficar geometricas figuras ejemplo comando matlab if-statement strcmp printf

rectangulo - Hacer una consulta Sí o No en MATLAB



rectangulo matlab (2)

¿Cuál es el problema exactamente? El siguiente script de prueba (llamado scriptrecurse.m) funciona como se esperaba (tenga en cuenta que no necesita los paréntesis () para llamar a un script).

X = randn(3); disp(''X = '') disp(X) x = input(''Go again? '',''s''); if strcmpi(x,''y'') scriptrecurse else fprintf(''Bye!/n'') end

Por ejemplo:

>> scriptrecurse X = 1.1808 0.4716 -1.4529 0.1729 2.0474 -0.6343 0.1747 -0.6437 -1.1136 Go again? y X = -0.8910 -0.2479 0.0851 1.7106 2.0659 0.6639 -0.5174 -0.4350 0.0301 Go again? n Bye!

Escribí un script en MATLAB, donde estoy recuperando filas y columnas de una tabla basada en la cláusula WHERE. Hasta ahora logré recuperar los datos de la tabla de la base de datos.

El problema es que me gustaría permitir que el usuario tenga la opción de ejecutar otra búsqueda para recuperar otro conjunto de datos.

Este es mi código hasta ahora que tengo y el script se llama ''searchpdb''.

pdbSearch = input(''Enter your PDB Code: '', ''s'') curs = fetch(exec(conn, [''SELECT * FROM cath_2_wo_dup WHERE pdbcode = '' '''''''' pdbSearch ''''''''])); fprintf(''Results Successful! /n''); results = curs.Data % prints the data out % ---------------------- % User option to search again % ----------------------- goAgain = input(''Would you like to search for another pdb?'', ''s''); % if (goAgain = ''Yes'') if strcmp(goAgain, ''Yes'') searchpdb(); %runs this script again. elseif strcmp(goAgain, ''No'') fprintf(''/nBye!/n''); end

He intentado usar ''questdlg'', pero no muestra los resultados de los datos en la tabla después de que le he dado la opción al usuario para que se ejecute nuevamente.

Estoy haciendo esto de la manera incorrecta, ¿o hay otra forma eficiente de hacerlo? ¿Debería la opción de ejecutar el script volver a estar en otro script?


Bueno, funcionará, pero recomendaría usar una cláusula while lugar de llamar al script recursivamente:

goAgain = true; while goAgain pdbSearch = input(''Enter your PDB Code: '', ''s''); curs = fetch(exec(conn, [''SELECT * FROM cath_2_wo_dup WHERE pdbcode = '' '''''''' pdbSearch ''''''''])); fprintf(''Results Successful! /n''); results = curs.Data % prints the data out % ---------------------- % User option to search again % ----------------------- res = input(''Would you like to search for another pdb?'', ''s''); goAgain = isequal(upper(res),''YES''); end

Simplemente se vuelve más claro para el lector de tu código. Con solo echar un vistazo a las primeras líneas de este nuevo código, uno puede adivinar que:

  1. Hay un ciclo: algo sucede muchas veces.
  2. Hay una condición de detención llamada goAgain .