我创建了一个返回向量大小的函数。输出为360x3维矩阵。输入是360x2。 在功能之外一切正常。我如何让它工作?
clc
P_dot_ij_om_13= rand(360,2); // 360x2 values of omega in vectors i and j
//P_dot_ij_om_13(:,3)=0;
function [A]=mag_x(A)
//b="P_dot_ijOmag_"+ string(k);
//execstr(b+'=[]'); // declare indexed matrix P_dot_ijOmag_k
//disp(b)
for i=1:1:360
//funcprot(0);
A(i,3)=(A(i,2)^2+A(i,1)^2)^0.5; //calculates magnitude of i and j and adds 3rd column
disp(A(i,3),"vector magnitude")
end
funcprot(1);
return [A] // should return P_dot_ijOmag_k in the variable browser [360x3 dim]
endfunction
mag_x(P_dot_ij_om_13);
//i=1;
//P_dot_ij_om_13(i,3)= (P_dot_ij_om_13(i,2)^2+P_dot_ij_om_13(i,1)^2)^0.5;// example
答案 0 :(得分:1)
您从未将mag_x(P_dot_ij_om_13)
分配给任何变量,因此此函数的输出会消失。变量A
是此函数的本地变量,它不存在于其外部。
要使计算结果可用,请将其分配给某个变量:
res = mag_x(P_dot_ij_om_13)
或A = mag_x(P_dot_ij_om_13)
如果你想在函数之外使用相同的名称。
顺便说一句,Scilab documentation不鼓励使用return
,因为它会导致混淆。 Scilab / Matlab函数语法与return
指定函数输出的语言不同:
function y = sq(x)
y = x^2
endfunction
disp(sq(3)) // displays 9
这里不需要return
。