MATLAB图不会显示我在结束函数后输入绘图时



我得到了这个:

"此语句不在任何功能中。 (遵循终止函数" plot_2_components"的定义的结局。(

我已经尝试在"结束"之前输入绘图,但没有显示地块。假设变量分配给它们。

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)

谢谢!

看起来您正在尝试创建一个包含本地函数的脚本文件(注意:仅在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

如果您的文件使用功能启动,则将其视为功能文件而不是脚本。第一个函数是主函数(这是从文件外部调用(,而任何后续函数都是本地函数(只能从文件中调用(。功能文件无法在函数定义之外定义任何代码,因此您遇到的错误。

相关内容

  • 没有找到相关文章

最新更新