for循环中只有一行(最后一行)是在MATLAB中绘制的

时间:2017-03-27 18:55:14

标签: matlab for-loop line

我试图在蛋白质印迹图像(分子生物学类型的东西)中通过6个印迹中的每一个绘制水平线。出于某种原因,我只能在循环结束时通过最后一个印迹绘制线条。想法?western_blot

h['index1'] = h.index
h.sort_values(by=['index1', 'age'])

1 个答案:

答案 0 :(得分:0)

当函数impixel创建一个新图形供你选择其中的点时,它将继续覆盖你的图像。因此,您应该使用impixel在循环中收集您的积分,存储数据,然后制作您的绘图。试试这个:

x_coord = [];
y_coord = [];

for i = 1:6
  [x_coord(:, i), y, intensities] = impixel(my_image);
  avg_y = (sum(y))/2;
  y_coord(:, i) = [avg_y; avg_y];
end

imshow(my_image);
line(x_coord, y_coord, 'Color', 'white');