为什么我使用rdivide,mrdivide或quotient使用vpi包在matlab(octave)中出现错误?

时间:2016-01-09 13:48:15

标签: matlab package octave matlab-guide matlab-deployment

我使用八度音阶供私人使用(我是一名学生,遗憾的是我的大学学生没有免费的Matlab版本) 现在我尝试使用大数字来实现算法;所以我开始在这里下载vpi包:

http://www.mathworks.com/matlabcentral/fileexchange/22725-variable-precision-integer-arithmetic

现在我将数据放在正确的位置并开始使用它,这真的很棒;

所以我开始举例:

 a=vpi(12989487973402)
 a =

     12989487973402

然后

 a=a^10
 a = 1367477916402329222848766554412698316550418920659968300260110320792
 46979577273468682364762841107165766713454228653820366806955009024

真的很棒;但是我现在尝试使用其中一个命令rdivide,mrdivide或者这个包的商,这个命令实际上是针对vpi编号而实际应该工作的;然而,它不适用于更大的数字:

E.g。

  b=vpi(129892);
  c=b^2

  c = 
    2191528947700288

 rdivide(c,2)
 ans =

     1095764473850144

然而,当数字只有一点点大时,我突然得到错误信息(函数rdivide,mrdivide和quot完全相同)

 c=b^4

   c = 
    284662078074685808896

 rdivide(c,2)
 error: 'iszero' undefined near line 49 column 6
 error: called from:
 error:   /home/john/test/@vpi/times.m at line 55, column 3
 error:   /home/john/test/@vpi/mtimes.m at line 27, column 7
 error: evaluating argument list element number 1
 error:   /home/john/test/@vpi/quotient.m at line 103, column 9
 >>>error:   /home/john/test/@vpi/rdivide.m at line 43, column 5

现在我想知道它是否是Octave的一个问题,我需要有原始的matlab,或者它是否是程序中的错误,或者我是不是太愚蠢而无法使用它?

有人可以帮忙吗???谢谢

编辑:rdivide,mrdivide和商都非常相似,他们应该返回a./b for rdive / mrdivide / quotient(a,b)如果a可被b整除

0 个答案:

没有答案