我正在尝试制作一个映射坐标的程序。我无法让Matlab根据向量不等式选择特定值。也许我做错了,但这是我的代码,其中 g 是一个给出点的全局位置的向量。 EL 是“对象”的长度,本地坐标是1-D情况下“对象”上的点的坐标。然后重新评估那些本地坐标,以在整个对象的长度上给出-1到1的值。 PL 是全局对象的位置。
%Get the local coordinates of the points
for g=(gp(gp>0))
for n1=(gp(gp<EL(1,1)))
gp1=[n1, 1];
end;
for x=(gp(PL((x1-1),1)<gp<PL((x1),1)));
gp2=[(x-(EL(x1,1))),1];
end
for x=(gp((PL(x1,1)<=gp)));
gp3=[((x)-(EL(x1,1))),1];
end
lpap=([gp1,gp2,gp3]);
%use the local coordinates to get the natural coordinates
for x=(gp(gp<=EL(1,1)))
nc=[((lpap*2)/EL(1,1))-1,1];
end
for x=(gp(PL(x1-1,1)<gp<PL(x1,1)));
nc1=[((lpap*2)/EL(x1,1))-1,1];
end
for p=(gp(PL(x1,1)<=gp));
nc2=[((lpap*2)/EL(x1,1))-1,1];
end
nct=[nc,nc1,nc2]
end
除了nct不是-1到1之外我知道出错了,因为运行它给了我一个x,p,n1变量的常量值,它应该给出多个值。
答案 0 :(得分:2)
我不确定你在这里要做什么,我建议在flow control上阅读MATLAB的文档,以便更好地了解如何在matlab中编程,但只是为了让你开始......
for matlab中的循环在数组上工作:
for n = 1:10
% do stuff
end
要根据值选择数组的某些部分,可以使用索引引用:
a = [1 2 3 4 5 6 7 8];
a_gt_four = a(a>4); % returns [5 6 7 8];