首页 > 解决方案 > 当我在结束函数后进入绘图时,MATLAB 图不会显示

问题描述

我明白了:

“此语句不在任何函数内。(它遵循终止函数“plot_2_components”定义的END。)”

我试过在“结束”之前输入情节,但没有出现情节。假设变量具有分配给它们的值。

function [U,A] = beer_game_orbit(a,b,t,Q,x0,n, k)
    %create orbit in 15 x K matrix using a total of N matrix 

    A = zeros(15,n); 

    A(:,1) = x0; 
    for i =2:n
       %compute but do not store yet, iterate over first column
       A(:,i) = beer_game_function(a,b,t,Q,A(:,i-1)); 


    end

    U = A(:,n-k+1:n);

end

function [] = plot_2_components(k1,k2,U)
    %k1 and k2 are the components who we can to graph against each other 
    %U is the output of beer_game_orbit 

    m = size(U(k1,:),2); 

    figure(1); 
    clf; 

    for i = 1:m

        plot(U(k1,i),U(k2,i),'k*'); 
        hold on 

    end


    if(k1 == 1)
        str1 = 'FI'; 
    elseif k1 == 2
        str1 = 'FB'; 
    elseif k1 == 3
        str1 = 'FPD2'; 
    elseif k1 == 4
        str1 = 'FPD1'; 

    end

    if(k2 == 1)
        str2 = 'FI'; 
    elseif k2 == 2
        str2 = 'FB'; 
    elseif k2 == 3
        str2 = 'FPD2'; 
    elseif k2 == 4
        str2 = 'FPD1'; 
    elseif k2 == 5

    end

    title(['Plot of ' str1 ' vs ' str2]);
end

Run [U] = beer_game_orbit(a,b,t,Q,x0,n,k)
plot_2_components(1,4,U)

谢谢!

标签: matlabplotchaos

解决方案


看起来您正在尝试创建一个包含本地函数的脚本文件注意:仅在 R2016b 或更高版本中支持)。如果这是真的,那么您必须在要在脚本中运行的代码之后移动本地函数。您的文件应如下所示:

[U] = beer_game_orbit(a,b,t,Q,x0,n,k);  % Code to run
plot_2_components(1,4,U);               % Code to run

function [U,A] = beer_game_orbit(a,b,t,Q,x0,n, k)  % Local function

  % Code for beer_game_orbit...

end

function [] = plot_2_components(k1,k2,U)  % Local function

  % Code for plot_2_components...

end

如果您的文件以函数开头,那么它将被视为函数文件而不是脚本。第一个函数是主函数(从文件外部调用),而任何后续函数都是本地函数(只能从文件内调用)。函数文件不能在函数定义之外定义任何代码,因此您会遇到错误。


推荐阅读