我来自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
答案 0 :(得分:2)
在第二个示例中,您需要索引pointers
,即写
pointers(i) = assign;
而不是在第二行调用'length'。
然而,更简单的解决方案是编写
pointers = (experiment(:,1).^2 + experiment(:,2).^2) <= 1
有了这个,你在括号内创建一个带有平方和结果的新数组。然后可以检查该数组是否小于或等于1(即如果它大于1,则结果为0),返回数组pointers
中所有比较的结果。