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 Commento

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.

Accedi per commentare.

 Risposta accettata

madhan ravi
madhan ravi il 10 Dic 2018
Modificato: madhan ravi il 10 Dic 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 Commenti

Thanks for your help!
But when the main.m has another function,
the error shows: Function with duplicate name "main" cannot be defined.
there contains another file named main.m either rename it or delete it
Stephen23
Stephen23 il 10 Dic 2018
Modificato: Stephen23 il 10 Dic 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
Thank you @Stephen :)

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 10 Dic 2018
Modificato: Stephen23 il 10 Dic 2018

0 voti

Actually all you need in your script is this:
psm_q = [pi/3; pi/3; 0.1; pi/3; pi/3; pi/3];

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by