2016-12-27 6 views
0

ベクトルの大きさを返す関数を作成しました。出力は360x3次元の行列です。入力は360x2です。 機能のすべてが機能の外で正常に機能します。どのように私はそれを働かせるのですか?変数ウィンドウで変数を返さないScilab

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

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の必要はありません。

関連する問題