Call a Matrix inside another Script

2 次查看(过去 30 天)
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 个评论
Stephen23
Stephen23 2018-12-10
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.

请先登录,再进行评论。

采纳的回答

madhan ravi
madhan ravi 2018-12-10
编辑:madhan ravi 2018-12-10
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 个评论
Stephen23
Stephen23 2018-12-10
编辑:Stephen23 2018-12-10
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

请先登录,再进行评论。

更多回答(1 个)

Stephen23
Stephen23 2018-12-10
编辑:Stephen23 2018-12-10
Actually all you need in your script is this:
psm_q = [pi/3; pi/3; 0.1; pi/3; pi/3; pi/3];

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by