将来自 C++ 代码的向量写入文件,然后在 MATLAB 中读取它
writing a vector from c++ code into a file and then reading it in matlab
我有一个在 c++ 中生成的数据类型为双精度的向量,我正在尝试将其写入文本文件,以便我可以将文本文件加载到 matlab 中,以便绘制来自向量的数据与我已经在我的 matlab 工作区中的数据。我能够创建一个名为 real_data2.txt 的文件,并且程序运行没有错误,但是当我尝试在 Matlab 中加载文件或在文本阅读器中打开它时,文件的内容可以说是胡言乱语。我用于创建文件的代码是:
ofstream out("real_data2.txt");
if(!out){
cout << "Cannot open file.n";
return;
}
for(int i = 0; i<N; i++){
out.write((char *) &out2[i][0], N);
}
out.close();
其中 N 是 out2 的长度。这将成功生成"real_data2.txt"文件。然后,我将生成的文件放入 matlab 路径中,并在 matlab 中使用 A = textread('real_data2.txt'
( 来尝试读取该文件。我收到的错误消息是:
使用数据读取时出错 从文件读取号码时出现问题(第 1 行,字段 1(==> > Uíl ̄ 9@9ÊÝÖ(@9Ò»=£P<@ ̈CÁ
文本读取错误(第 175 行( [varargout{1:nlhs}]=dataread('file',varargin{:}(;%#ok
当我双击 txt 文件时,我得到一个包含文本的文件,如下所示:
>Uíl ̄ 9@9ÊÝÖ(@9Ò»=£P<@ ̈CÁ
'
C@Bw|N¯8@]H~=@7@7ÂÙjóõ?ñXéWSO@¹U¥A°õ¿»D¾;@@¡ԨÊëQÀw®nr!úU@ß7XÀjw©}NÀJA(×FÀ|ûó>%÷GÀa¬W¯7@·âÖ3Ð
ÀÉ¿x ̈ G@Ï¿U°ÜÁ6@ò5^->@qzáme[ÀKÆ]T^'À1/47CJK@EhúôP:ÀF1/4 ̧ ý@íÀ÷3/4§ÎC@2w©^=AÀÛ«1/2ñð úr@>ò(÷@B˶xÀË6Y7 ̧@s÷ãCÀÓvÀ'F@ôuc@þÃjàÂ:À kμ Õv@ý/úÁL]Àv°¶ó+R@í æ¿¥òC@ð vwjc@WÔÙjÀ¡ @y¿ò5d®I@M ̧ö/þ ät@u000bZÝd>@Cåh0~ÀLÛoE@cÜ1/4Â¥À§ÝY.^Àù}øDzÀß H\XÀ¦ähöT~@ÍÚ\åþ Àá@Êà¤Ï»TÀAýx@r$Ü@u@Bã¿ l@ß® xç@1/2ô¶ %ÖbÀ{̱Àò#@HëSuÀ[ÙÑóÏ(w@ zû%ÀGK«7qiÀŦÊoÀúxeIÀy8nÓV@ØÕ3~yÀ³>ú¹@vc@ñáĶmÀ &Q¹ig@?klgmÀ'Ìh&ûu@J «kGiÀÂ|7kê@y- @ª ôg@ïíEY@\Ayi?S\@e Ø ̧ hã@ðô6fzÀ ©ås¬·@ROÅÍjÀÓâÒ×SJ àýßv ̈b >À(ê- ß ̧àów Ás@ûu000böÅèÀj¦Ð î@ © ÎÀ3/4&ñ~.U@_ÿz<~@qåd ø IÛz@4(Áe@:' Nu000b{à=ào ̧@ælëíVÒÀ©ÀÍûY7|XÀ¬' çä1ÀØ ®@ÁÇj@ ̈k8À ̈
有什么想法我哪里出错了吗?我对这个主题了解不多,但我假设它与尝试将数据的位置转换为字符指针有关,但我不确定也不知道如何解决这个问题,因为我尝试过用 out.write((char *) out2[i][0], N);
和 out.write((double *) &out2[i][0], N);
之类的东西改变那行失败我现在意识到可能没有太多意义......无论如何,任何帮助将不胜感激!如果您知道如何解决此问题,请告诉我!
out << out2[i][0];
是正确的方法。
您的输出是二进制的。
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- boost::asio如何生成多个协同程序,然后加入它们
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 在std::thread中,joinable()然后join()线程安全吗
- C++:如何读取分离变量,然后读取向量
- 为什么我的递归函数按降序打印,然后按升序打印?
- 等待整个 omp 块完成,然后再调用第二个函数
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 在CMD中运行MATLAB代码,然后等待完成
- 将稀疏数组从 matlab 传递到 Eigen (C++),然后再传递回 matlab
- 在C 中编写二进制INT数组时,然后在MATLAB中读取
- 将来自 C++ 代码的向量写入文件,然后在 MATLAB 中读取它
- 将 Matlab 中的矩阵保存到 bin 文件中,然后用 c++ 读取