我使用八度音阶供私人使用(我是一名学生,遗憾的是我的大学学生没有免费的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整除