[問題] C 轉 matlab 遇到了一些問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEVC++,Matlab 2009a
問題(Question):
在C裡面可以將數字以每8Bits的長度存在一個陣列 例如 512*511*510=133432320
會存成 x[0]=33432320 x[1]=1,但轉成matlab後x(1,1)=33432320 x(1,2)卻沒有值過去
餵入的資料(Input):
C的部分:a=1,k=3,i=0,s=1,x[10000]={0},x[0]=1,carry=0,N=512
Matlab部分:k=3;N=512,carry=0,x=zeros(1,10000),x1=zeros(1,10000),x(1,1)=1,a=1:k
s=1
預期的正確結果(Expected Output):
x(1,1)=33432320,x(1,2)=1
錯誤結果(Wrong Output):
x(1,1)=33432320,x(1,2)=0
程式碼(Code):(請善用置底文網頁, 記得排版)
C:
for(a=1;a<=k;a++)
{
for(i=0;i<s;i++)
{
x[i]=x1[i]=x[i]*N+carry;
carry=x[i]/100000000;
x[i]=x1[i]=x[i]%100000000;
if(carry!=0 && i+1==s)
s++;
}
N-=1;
}
Matlab:
k=3;
N=512;
carry=0;
x=zeros(1,10000);
x1=zeros(1,10000);
s=1;
x(1,1)=1;
for a=1:k
for i=1:s
x(1,i)=x(1,i)*N+carry;
x1(1,i)=x(1,i)*N+carry;
carry=fix(x(1,i)/100000000);
x(1,i)=rem(x(1,i),100000000);
x1(1,i)=rem(x(1,i),100000000);
if (carry~=0 && i==s)
s=s+1;
end
N=N-1;
end
end
補充說明(Supplement):
小弟不知道此版能不能問matlab,但小弟在matlab版求救過找不到甚麼解答...我也DEBUG
好久了,所以上來求助各位神手,如果有發言不慎,還請各位見諒,謝謝:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.133.200
→
04/13 19:22, , 1F
04/13 19:22, 1F
→
04/13 19:25, , 2F
04/13 19:25, 2F
→
04/13 19:25, , 3F
04/13 19:25, 3F
→
04/13 19:26, , 4F
04/13 19:26, 4F
→
04/14 00:49, , 5F
04/14 00:49, 5F
→
04/14 01:03, , 6F
04/14 01:03, 6F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):