如何在MATLAB中的数组中保存多个函数?

时间:2010-12-05 06:24:19

标签: arrays matlab plot

我是MATLAB的新手,所以我甚至不知道这是否可行,但这里是...... 我试图使用绘图功能在单个图形中打印多行。问题是,我希望能够通过简单地更改变量来指定图表应显示多少行,例如:{这是我想要做的伪代码}

 number_of_lines = 4;
 x = 0:0.5:5;

 function_output[number_of_lines];

 for n=0:number_of_lines
     function_output[n] = sin(n + x);
 end

 for n=0:number_of_lines
     plot(x,function_output[n]);
 end

我知道上面的伪代码并不完全是MATLAB,但我想知道是否可以在MATLAB中使用这种算法。

2 个答案:

答案 0 :(得分:2)

这是在MATLAB中实现示例的一种方法:

function_output = zeros(numel(x), number_of_lines);  % Initialize a 2-D array
for n = 1:number_of_lines                   % MATLAB uses 1-based indexing
    function_output(:, n) = sin(n + x).';  %' Compute a row vector, transpose
                                            %   it into a column vector, and
                                            %   place the data in a column of
                                            %   the 2-D array
end
plot(x, function_output);  % This will plot one line per column of the array

以下是您应该阅读的一些文档链接,以了解和理解上述代码:

答案 1 :(得分:1)

您是否浏览过MATLAB手册? - 它写得很好,有很多例子。复制示例脚本并将其粘贴到命令窗口,看看会发生什么......

http://www.mathworks.com/help/techdoc/creating_plots/f9-53405.html

您可以编写脚本或使用他们的绘图工具: http://www.mathworks.com/help/techdoc/creating_plots/f9-47085.html

---脚本示例

  

number_of_lines = 4;

     

x = 0:0.5:5;

     

function_output =那些(NUMBER_OF_LINES,1)*楠;

     

数字;坚持;

     

表示n = 1:number_of_lines

     

function_output(n,1)= plot(x,sin(n + x),'color',[1-n / number_of_lines 0 n / number_of_lines]);

     

     

图例(function_output)

玩得开心。