生成并显示分数系列
Generate and display series of fractions
我想生成如下系列:
1/2, -1/3, 1/4, -1/5, ..., 1/100
我的代码没有显示分数。
i= 2 : 100, k=((-1).^(i+1)).*i, y= (1/k)
你应该在你的命令之间加上分号,并且选择 ./
而不是 /
作为分隔符。另外,你的表述存在谬误。 -1
的幂应该是 i
.
i= 2 : 100;
k=((-1).^(i)).*i;
y= 1./k;
如果您使用 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]
这是另一个解决方案:
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
-1
1
-1
1
-1
1
-1
...
我想生成如下系列:
1/2, -1/3, 1/4, -1/5, ..., 1/100
我的代码没有显示分数。
i= 2 : 100, k=((-1).^(i+1)).*i, y= (1/k)
你应该在你的命令之间加上分号,并且选择 ./
而不是 /
作为分隔符。另外,你的表述存在谬误。 -1
的幂应该是 i
.
i= 2 : 100;
k=((-1).^(i)).*i;
y= 1./k;
如果您使用 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]
这是另一个解决方案:
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
-1
1
-1
1
-1
1
-1
...