绘制matlab中每个变化循环的图形

时间:2013-05-10 09:20:01

标签: matlab loops plot

我的matlab代码中出现了一些奇怪的问题,这是我代码的一部分:

for k=1:length(box11)
    num_pts1(k)=sum(length(find(box11(:,k)>0)));
    size1=sum(length(find(box11(:,:)>0)));
    perc1(k)=(num_pts1(k)/size1)*100;
end
plot(delta,perc1(k),'*')

然而,问题是我在我的情节中修复了perc1。所以我在图中看到一条直线。但是我希望有不同的数字给我一条曲线,因为k正在改变每个循环所以图形也应该改变.. plzzzzzzzzzzzzzzzz,任何帮助:( !!!

2 个答案:

答案 0 :(得分:1)

你需要在循环中plot

for k=1:length(box11)
    num_pts1(k)=sum(length(find(box11(:,k)>0)));
    size1=sum(length(find(box11(:,:)>0)));
    perc1(k)=(num_pts1(k)/size1)*100;
    plot(delta,perc1(k),'*'); hold on % Note the "hold" command!
end

答案 1 :(得分:0)

如果您的box11矩阵包含不同数量的每列> 0的元素,则代码可以正常工作。我认为问题在于您的数据,而不是您的代码。以下是带有一些虚拟数据的稍微整理的代码版本,它可以正常工作:

% Create a dummy box11 matrix
box11 = round(rand(15,58));

% Pre-allocate variables
num_pts1 = zeros(length(box11),1);

for k=1:length(box11)
    num_pts1(k)=sum(length(find(box11(:,k)>0)));       
end

size1=sum(length(find(box11(:,:)>0)));
perc1=(num_pts1/size1)*100;
delta = 1:length(perc1);

plot(delta,perc1,'*')

它产生以下图(在Octave中,应该在MATLAB中类似):

enter image description here