poster
2019-12-14, 20:13
我来自Mathematica (http://en.wikipedia.org/wiki/Mathematica) ,我想在MATLAB中 (http://en.wikipedia.org/wiki/MATLAB)创建它
pointers = Table[If[experiment[[i, 1]]^2 + experiment[[i, 2]]^2 > 1, 0, 1], {i, 1, npoints}]; 例如,对于npoints = 10,输出为{0,1,1,1,1,1,0,0,1,1}。
我试过了,但是错了! (我现在正在学习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
回答:
在第二个示例中,您需要索引pointers ,即write
pointers(i) = assign; 而不在第二行中调用“长度”。
但是,一个更简单的解决方案是编写
pointers = (experiment(:,1).^2 + experiment(:,2).^2)
pointers = Table[If[experiment[[i, 1]]^2 + experiment[[i, 2]]^2 > 1, 0, 1], {i, 1, npoints}]; 例如,对于npoints = 10,输出为{0,1,1,1,1,1,0,0,1,1}。
我试过了,但是错了! (我现在正在学习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
回答:
在第二个示例中,您需要索引pointers ,即write
pointers(i) = assign; 而不在第二行中调用“长度”。
但是,一个更简单的解决方案是编写
pointers = (experiment(:,1).^2 + experiment(:,2).^2)