函数结束后,当我进入绘图时,MATLAB图形不会显示
我明白了: “此语句不在任何函数中。 (在结束函数“plot_2_components”的定义之后。) 我试着在“结束”之前进入情节,但没有情节出现。假设变量具有分配给它们的值函数结束后,当我进入绘图时,MATLAB图形不会显示,matlab,plot,chaos,Matlab,Plot,Chaos,我明白了: “此语句不在任何函数中。 (在结束函数“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
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
如果文件以函数开头,那么它将被视为一个函数,而不是脚本。第一个函数是主函数(从文件外部调用),而任何后续函数都是主函数(只能从文件内部调用)。函数文件无法定义a之外的任何代码,因此您将收到错误。我尝试修复您的代码格式,但我不理解以“
Run[U]
”开头的结尾,请回答您的问题并确保它有意义。