终于找到 如何在Mathematica 下读入文件 显示其数据为波形

终于找到 如何在Mathematica 下读入文件 显示其数据为波形

开始老是用Improt 而且我的文件也是字符串 因为C++操作字符串方便  老是显示不成功 因为读进去也是字符串 ,在MATH下 字符串转换感觉很麻烦,试了很多次不行

后面换成二进制文件  结果就成功了 

Clear["Global`*"]   (* 清除所有变量 *)
SetDirectory[NotebookDirectory[]]  (*设置为当前文件为工作目录 *)
da1 = BinaryReadList["Debug\\OutSinData.c", 
  "Integer32"];  (* 读二进制文件为 32位长度 *)
Length[da1]
ListPlot[da1]   (* 显示波形 *)
da1

 

效果如下:

 

附VC 代码:

void CVS_TSTDlg::SinOutFunc(void)
{

    CStdioFile FileIn, FileOutc, FileOuth;
    CString strFileNamec = L"..\\Debug\\OutSinData.c";
    //CString strFileNameh=L"..\\Debug\\CanProtocolxx.h":
    CString strFileTemp,strFileOutc,strFileOuth;

    UpdateData(TRUE);

    int frst = FileOutc.Open(strFileNamec,CFile::typeBinary | CFile::modeCreate | CFile::modeReadWrite, 0);   //modeWrite  typeText

    if (!frst)
    {
        m_strShow.Format(L"打开文件:%s 失败\n",strFileNamec);
        UpdateData(FALSE);
        return;
    }

    m_strShow.Format(L"打开文件:%s 成功\n",strFileNamec);

    //int Rad=1431660000;
    int Rad=0;
    int    sindata = 0;
    int sindataA,sindataB,sindataC;
    int leng = 360;
    int *pData = (int*)malloc(leng*(4*2));  //+1  ","

    for (int i = 0; i < leng*2; i+=2)
        //for(int j=0:j<3000:j+=180)//101.19305e8
    {
        //Sin2piData[]//0-3000
        Rad-=59652300;//596523005度

        sindataA = SinDataFunc(Rad);
        //sindataB = SinDataFunc(Rad+1431655765);  //+120.0
        //sindataC = SinDataFunc(Rad+2863311530);  //+240.0


        //strFileTemp.Format(L"%d,",sindata);
        //if (i!=0 && i%15==0) strFileTemp += L"\n":
        //strFileOutc+=strFileTemp;

        pData[i]   = sindataA;
        pData[i+1] = ',';
    }

    //FileOutc.WriteString(strFileOutc);  //Write
    FileOutc.Write(pData,leng*(4+1));
    FileOutc.Close();

    free(pData);
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值