全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2746 2
2014-01-13
悬赏 5 个论坛币 未解决
我装了Rtools,也定义了环境变量,一切显示正常,可是发现调用fortran的时候及其不稳定
我的fortran程序如下
   subroutine MYSUB(n,x)
   
    !DEC$ ATTRIBUTES DLLEXPORT, STDCALL:: MYSUB  
       implicit none
      
       integer:: n,i
       real:: x(n)
      
       do i=1,n
        x(i)=x(i)**2
       end do
      
       end

setwd("d:/R")
system("R CMD SHLIB mysub.f90")
dyn.load("mysub.dll")
is.loaded("mysub")
.C("mysub",as.integer(3),as.numeric(c(2,3,4)))
结果是
[[1]]
[1] 3

[[2]]
[1] 512   3   4
很是无语,这个512哪来的。。这是我的两个变量接口做的不对吗?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-1-13 07:35:11
求高手作答。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-9 13:33:41
首先,fortran 所有参数都是以指针(Bjarne Stroustrup说是引用,就当指针好了)方式传递的,所以你看到数组后两个数据3和4根本就没变;
其次,你的知道R语言中数据是底层语言如何实现的,实数/数组等等,可能是用了class类啥的。数据时如何存的。
搞清楚这就OK了
关键是我不会R,所以只能帮你到这了;最好看看官方说明文档看看调fortran是怎么用,这样最简单了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群