创建矩阵 - MATLAB

时间:2011-01-20 19:04:45

标签: matlab matrix

我来自Mathematica,我想在MATLAB

中创建它
pointers = 
  Table[If[experiment[[i, 1]]^2 + experiment[[i, 2]]^2 > 1, 0, 1], {i,
     1, npoints}];

输出为例如{0,1,1,1,1,1,0,0,1,1},npoints = 10。

我试过这个,但这是错的! (我现在正在学习MATLAB,但我从Mathematica学到了一点)

assign=experiment(i,1)^2 +experiment(i,2)^2;
if assign>1
    assign=0;
else assign=1;
end
pointers=assign(1:npoints);

我也这样做了输出1,但是错了:

for i=1:npoints
assign=length(experiment(i,1)^2 +experiment(i,2)^2);
if assign>1
    assign=0;
else assign=1;
end
end
pointers=assign

1 个答案:

答案 0 :(得分:2)

在第二个示例中,您需要索引pointers,即写

pointers(i) = assign;

而不是在第二行调用'length'。

然而,更简单的解决方案是编写

pointers = (experiment(:,1).^2 + experiment(:,2).^2) <= 1

有了这个,你在括号内创建一个带有平方和结果的新数组。然后可以检查该数组是否小于或等于1(即如果它大于1,则结果为0),返回数组pointers中所有比较的结果。