1

如果我有两个功能:

//function 1
function [tp] = Calculate_T_P();

//body of function 1
// here I define U, which is a random integer between 0 and 15
U = randi([15])    
// say U is generated to be e.g., 5

现在我想在 for 循环中使用我的第二个函数的第一个函数中生成的 U 的相同值(即 5):

//function 2
function [sp] = Calculate_S_P();

//Body of function 2
for b=0:U
  // body of for loop
end

谁能告诉我如何实现这一目标?谢谢!

4

1 回答 1

3

这取决于您打算如何使用这两个功能。

选项1

U将第二个函数作为参数传递给它,并将其作为第一个函数的第二个输出。

function [tp, U] = Calculate_T_P();

//body of function 1
// here I define U, which is a random integer between 0 and 15
U = randi([15])    

//function 2
function [sp] = Calculate_S_P(U);
//Body of function 2
for b=0:U
  // body of for loop
end

所以你现在可以这样称呼它:

[tp, U] = Calculate_T_P()
Calculate_S_P(U)

选项 2

这很可能是一个更简洁的选择,即传递U给您的两个函数并在开始时立即计算:

function [tp] = Calculate_T_P(U);

%//body of function 1, no longer define U here

//function 2
    function [sp] = Calculate_S_P(U);
    //Body of function 2
    for b=0:U
      // body of for loop
    end

现在你的程序看起来像

U = randi(15)
tp = Calculate_T_P(U)
sp = Calculate_S_P(U)
于 2013-09-12T13:41:46.310 回答