我试图在MATLAB中将许多点插入到一点。但是我收到了错误
网格矢量未定义与给定值匹配的点网格。
我的代码如下:
A = [2 6;3 7]
B = [3 6;4 9]
Xq=[A(:,1) [10;10]]
Yq=interp1(A,B,Xq','linear','extrap')
答案 0 :(得分:2)
'For loop'将是一个解决方案。
就是一个例子。
A = [2 6;1 6;3 6]
B = [3 6;2 6;3 6]
L=size(A)
xArr=zeros(L(1), L(2));
yArr=zeros(L(1), L(2));
nLine=L(1); %number of lines
for k=1:nLine
Xq=[A(k,:) 10]
Yq=interp1(A(k,:),B(k,:),Xq','linear','extrap')
xArr(:,k)=Xq';
yArr(:,k)=Yq';
end
plot(xArr,yArr,'*-')
如果你不想使用for循环,你可以直接计算线性函数的梯度和截距。
A = [2 6;1 6;3 6]
B = [3 6;2 6;3 6]
L=size(A)
limX=10; %x limit
a=(B(:,2)-B(:,1))./(A(:,2)-A(:,1)); %gradient vector
b=B(:,1)-a.*A(:,1); % intercept vector
y=a*limX+b % linear function
Aq=[A';limX*ones(1,L(1))];
Bq=[B';y'];
figure(2)
plot(Aq,Bq,'*-')