Borrar filtros
Borrar filtros

Call a Matrix inside another Script

2 visualizaciones (últimos 30 días)
Laurel Castillo
Laurel Castillo el 10 de Dic. de 2018
Editada: Stephen23 el 10 de Dic. de 2018
I want to achieve:
1. psm_q is a script.
2. When I am in main.m, type
psm_q;
psm_q will be shown in the workspace as a 6*1 matrix with values defined in psm_q.m
Let's say the 6*1 matrix of psm_q is [pi/3; pi/3; 0.1; pi/3; pi/3; pi/3], what should I code in psm_q?
I tried typing in psm_q:
[pi/3; pi/3; 0.1; pi/3; pi/3; pi/3]
,
[q1=pi/3;
q2=pi/3;
q3=0.1;
q4=pi/3;
q5=pi/3;
q6=pi/3]
and
function [q1,q2,q3,q4,q5,q6]=psm_q()
q1=pi/3;
q2=pi/3;
q3=0.1;
q4=pi/3;
q5=pi/3;
q6=pi/3;
end
but they all don't work as expected.
Please help.
  1 comentario
Stephen23
Stephen23 el 10 de Dic. de 2018
Numbered variables are a sign that you are doing something wrong. Sitck to using arrays if you want to make your code simpler and more efficient.

Iniciar sesión para comentar.

Respuesta aceptada

madhan ravi
madhan ravi el 10 de Dic. de 2018
Editada: madhan ravi el 10 de Dic. de 2018
Just call it in the main.m script
function psm_q=psm_q_func()
q1=pi/3;
q2=pi/3;
q3=0.1;
q4=pi/3;
q5=pi/3;
q6=pi/3;
psm_q=[q1 q2 q3 q4 q5 q6].';
end
  4 comentarios
Stephen23
Stephen23 el 10 de Dic. de 2018
Editada: Stephen23 el 10 de Dic. de 2018
Simpler without transpose:
psm_q = [q1; q2; q3; q4; q5; q6];
or even better:
function out = psm_q_func()
out = [pi/3; pi/3; 0.1; pi/3; pi/3; pi/3];
end
madhan ravi
madhan ravi el 10 de Dic. de 2018
Thank you @Stephen :)

Iniciar sesión para comentar.

Más respuestas (1)

Stephen23
Stephen23 el 10 de Dic. de 2018
Editada: Stephen23 el 10 de Dic. de 2018
Actually all you need in your script is this:
psm_q = [pi/3; pi/3; 0.1; pi/3; pi/3; pi/3];

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by