Matlab根据矩阵值选择值

时间:2011-02-15 16:56:25

标签: matlab

我正在尝试制作一个映射坐标的程序。我无法让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变量的常量值,它应该给出多个值。

1 个答案:

答案 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];