查看单个帖子
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 创建矩阵-MATLAB

我来自Mathematica ,我想在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)
poster 当前离线   回复时引用此帖