【发布时间】:2014-03-07 05:06:56
【问题描述】:
我可以在 Matlab 中用一组 x,y 点绘制回归线。但是,如果我有一个点簇(如下图所示),假设我有四个点簇,我想为它们绘制四个回归线。我该怎么做?所有点都保存在 x,y 中。没有办法将它们分开并放入四组不同的变量中。
见下图。忽略图例和标签。知道如何在 Matlab 中做到这一点吗?如果只有一个集群,我可以做到。但我想同时为所有四个集群做。
我现在用于一个集群的代码:
%----------- Linear regression -----------------
p= polyfit(x,y,1);
f= polyval(p,x);
%----------- Call R-square function ------------
r2=Rsquare(x,y,p);
%------------- Plot data -----------------------
figure()
plot(x,y,'*k');hold on
plot(x,f,'-r'); % show linear fit
xlabel('index');
ylabel('Intensity a.u.');
title('Test: Linear regreesion && R-square');
%------- Show y-data on current figure ---------
[row col]=size(y);
for i=1:col
str=num2str(y(i));
text(x(i),y(i),str,'Color',[0 0 1]);
end
%--Show linear equation on current figure -------
m1=num2str(p(1));c1=num2str(p(2));Rsquare1=num2str(r2(1));
text(1.05,80,['y= ',m1,'x+',c1,' , R^2= ',Rsquare1,'.'],'FontSize',10,'FontName','Times New Roman');
【问题讨论】:
-
您能否发布适用于一组点的代码?
-
已添加到帖子中。请检查。
-
你可以使用矩阵索引,比如
polyfit(x(1:10),y(1:10),1)吗?为什么不能将它们拆分为单独的变量? -
我可以。但这将是一项乏味的工作。因为我的数据很大。并且这种手工工作会出现错误。可能是我现在无法使用矩阵索引。
-
如果你找不到某种方法来分离你想要拟合的值,那么 MATLAB 就无法“自动”知道你想要做什么......你是如何将数据填充到
x,y矩阵?
标签: matlab 2d regression points