从c++;将代码转换成文件,然后在matlab中读取 我有一个数据类型的向量,在C++中生成,我试图把它写入文本文件,这样我就可以把文本文件加载到MATLAB中,以便从已经在我的MATLAB工作空间中的向量和数据中绘制数据。我能够创建一个名

从c++;将代码转换成文件,然后在matlab中读取 我有一个数据类型的向量,在C++中生成,我试图把它写入文本文件,这样我就可以把文本文件加载到MATLAB中,以便从已经在我的MATLAB工作空间中的向量和数据中绘制数据。我能够创建一个名,c++,matlab,C++,Matlab,从c++;将代码转换成文件,然后在matlab中读取 我有一个数据类型的向量,在C++中生成,我试图把它写入文本文件,这样我就可以把文本文件加载到MATLAB中,以便从已经在我的MATLAB工作空间中的向量和数据中绘制数据。我能够创建一个名为real_data2.txt的文件,程序运行时没有错误,但是当我尝试在Matlab中加载该文件或在文本读取器中打开它时,该文件的内容可以说是乱七八糟的。我用来创建文件的代码是: ofstream out("real_data2.txt");

从c++;将代码转换成文件,然后在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();
流输出的
(“real_data2.txt”);
如果(!out){
“你能吗?”9@9ÊÝÖ(@9Ò»=普赖尔)9@9ÊÝÖ(@9Ò»=Pò(÷BËxÀ6Y7÷s÷CÀ@Cåh0~LÛoE@cÜ嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤@u@Bãl223;
xçòòòòòòòòòòòòòòòòòòòòòwòzòGK«7qiòoÀoÀxeIòy8nØVØØèòòòò3~yòòu@J徖kGiÀ7k徖y徖gïEY徖Ayi徖eØ184; h徖6fzÀ
ås·@ROÍjÀ211; x SJÀ253; v¨b
>À

ÎÀ¾&ñ~.U@_ÿz
out您将数据写入二进制(原始双值)-您需要将其写入文本。使用std::cout,而不是write()。您在那里所做的完全不是您想要的。首先,您必须知道您真正想要写入的内容。您是否需要向量中的所有值作为文本,由空格或换行符分隔(例如“3.14 2.15 5.433”)?将
double
(二进制)写入文件,然后从matlab中读取它们(如果您只想读取点来绘制它们,这将是最快的)。如果您希望能够以文本格式读取文件(不仅仅是使用matlab),您必须首先将
double
转换为字符串表示形式,然后将其写入文件。您还可以使用file.h和fprintf将double转换为人类可读的格式非常简单、完美的答案!谢谢!我希望文件中的值用空格分隔,而我在问题中没有指定空格,因此我没有这样做o使用
out
out << out2[i][0];