在MATLAB里,我想导入一个excel表格,并且读取表格中的数据(有两列),根据黄金分割法选出相应数据,并且画出黄金分割曲线,程序如下,运行时显示,错误使用 plot,Y 的下标无效,可是我并没有使用Y的下标,请问一下怎么解决
% 读取Excel表格数据
data = readtable('D:\MATLAB学习\黄金分割曲线\数据选型.xlsx');
Speed = data(:,1);
Depth = data(:,2);
n = size(Speed); % 总数据数
% 黄金分割法选择数据
a = 1; % a表示区间左端点
b = n; % b表示区间右端点
p = .618; % 黄金分割比例
x1 = round(a + (1-p)*(b-a)); % 计算第一个中间点
x2 = round(a + p*(b-a)); % 计算第二个中间点
while abs(x2-x1) > 1
if Speed(x1) < Speed(x2)
b = x2;
x2 = x1;
x1 = round(a + (1-p)*(b-a));
else
a = x1;
x1 = x2;
x2 = round(a + p*(b-a));
end
end
index = round((a+b)/2); % 黄金分割点
% 绘制黄金分割曲线
figure
plot(Speed,Depth)
hold on;
plot(Speed(index),Depth(index),'r*')
xlabel('Speed')
ylabel('Depth')
legend('原始数据','黄金分割点')
speed_golden = Speed(index);
depth_golden = Depth(index);
fprintf('The golden ratio point is at (%f, %f).\n', speed_golden, depth_golden)