我想生成一个类似的系列:
1/2, -1/3, 1/4, -1/5, ..., 1/100
我的代码没有以分数显示。
i= 2 : 100, k=((-1).^(i+1)).*i, y= (1/k)
答案 0 :(得分:3)
您应该在命令之间添加分号,并选择./
代替/
进行分割。另外,你的表达中有一种谬误。 -1
的力量应为i
。
i= 2 : 100;
k=((-1).^(i)).*i;
y= 1./k;
答案 1 :(得分:1)
如果您使用double
,则会将结果作为浮点数。如果你想要分数,你需要象征性地进行计算:
syms ii k y
for ii = 1 : 10
k(ii) = ((-1).^(ii+1)).*ii;
y(ii) = (1/k(ii));
end
y =
[ 1, -1/2, 1/3, -1/4, 1/5, -1/6, 1/7, -1/8, 1/9, -1/10]
答案 2 :(得分:0)
这是另一种解决方案:
k = 100;
num = repmat([1 -1],1,(k / 2)).';
num_str = num2str(num);
den = (1:k).';
den_str = num2str(den,'%-d');
disp([num_str repmat('\',k,1) den_str]);
输出:
1\1
-1\2
1\3
-1\4
1\5
-1\6
1\7
-1\8
1\9
-1\10
...