生成并显示一系列分数

时间:2017-12-30 04:03:07

标签: arrays matlab fractions

我想生成一个类似的系列:

1/2, -1/3, 1/4, -1/5, ..., 1/100 

我的代码没有以分数显示。

i= 2 : 100,  k=((-1).^(i+1)).*i, y= (1/k)

3 个答案:

答案 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 
...