cn.fyodor 发表于 2008-5-2 20:41:19

有关 System_exec.vi 输出数据作图

用fortran写的代码,编译成可执行程序,由system_exec.vi调用,并输出数据,请问,如何实现对输出数据的作图?谢谢。
因为system_exec的输出为string,数据被当成字符串输出,不好处理了。

输出数据格式大概这样:
x1 y1
x2 y2
x3 y3
...

cpubbs 发表于 2008-5-2 20:43:21

字符可以转成NEMERIC的! 在string那边有!您可以瞧瞧,专门进行字符与数据转换的!:handshake

cn.fyodor 发表于 2008-5-2 21:29:22

谢谢版主,之前没找到浮点型的;以为只是整型呢。:L

还有问题,system_exec输出字符后面,接一个string indicator,为什么执行后没有显示呢?如果写入文件,倒是没有问题,与上面的数据格式相同。

cpubbs 发表于 2008-5-2 22:07:02

有这么奇怪的问题呀兄弟?呵呵,传上来俺们一起学习一下!:handshake

cn.fyodor 发表于 2008-5-2 22:42:56

例如一个fortran程序:
$ more test.f90
! main program
    program array_string
      integer, parameter :: dim = 3
      real :: array(dim)
      array = (/1.0,2.0,3.0/)
      do i = 1, dim
         write(*,fmt='(1f3.1)') array(i)
      end do
    end program
$ ifort test.f90 -o test
$ ./test
1.0
2.0
3.0

执行都没有问题,然后写一个vi,截图如下:

运行结果:
string indicator为1.0,也就是第一个数值
numeric indicator为12,包括了换行符(linux系统,换行符占一位)

cn.fyodor 发表于 2008-5-3 16:01:53

自己解决了。写出来作为版主对我帮助的回报。:lol
在system_exec.vi输出加一"spreadsheet string to array"控件,因其默认的delimiter为制表符(也可定制,但还是制表符较少影响到labview读二维数据);所以就在fortran中,如果输出二维数据,就用char(9)(fortran90中的制表符)分隔,比如:

write(*,fmt='f5.2,A,f5.2') y1, char(9), y2

作循环输出。再array index -> bundle -> plot不在话下。
页: [1]
查看完整版本: 有关 System_exec.vi 输出数据作图