Scilab不会在变量窗口中返回变量

时间:2016-12-27 00:35:10

标签: function scilab

我创建了一个返回向量大小的函数。输出为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

1 个答案:

答案 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