根据您提供的代码,看起来实现上没有问题。该函数在循环中使用 points = [points; x,y]
将每次选定的点添加到 points
数组末尾,并在循环结束后将 points
作为输出返回。
如果该函数只输出了最后一组数据,则可能是因为在调用该函数时没有正确保存输出变量。例如,如果您只是简单地调用了函数并没有将结果存储到变量中:
batch_ginput(file_list);
则会导致 Matlab 只输出最后一张图片选择的点坐标。
应该将输出变量保存到一个单独的变量中,例如:
result_points = batch_ginput(file_list);
这样才能确保所有选择的点都被正确地保存下来并可以进行后续处理。希望这可以解决您遇到的问题!