-1

我正在尝试实现此人的代码: http: //iris.lib.neu.edu/civil_eng_theses/30/但我无法在 Visual Studio 中生成工作可执行文件,因为我缺少 2 个文件:myoutput.cpp 和 PrintTimeReferencedVariable.cpp . 我不清楚 Matlab 构建器是应该生成它们还是我编写它们。

myoutput.cpp 应该是一个本质上执行 dlmwrite 的 C++ 文件。它的用法如下:

function [] = Output_01(FileName, FileNameLenght, OutputData, OutputSize1, OutputSize2)
coder.inline('never')
coder.ceval( 'myoutput', FileName, FileNameLenght, OutputData, OutputSize1, OutputSize2);            
end
% %% Matlab Version: to run the model in Matlab uncomment below, comment above
% function [] = Output_01(FileName, FileNameLenght, OutputData, OutputSize1, OutputSize2)
% dlmwrite(FileName, OutputData,'-append','coffset',0,'delimiter','\t','precision','%6.6G')
% precision = 4;
% disp( num2str( OutputData,precision))
% end

注释掉的是文件的 matlab 版本,顶部是 C++ 中内置的内容。这些文件应该写入目录:C:\matlab-results-from-cpp。

PrintTimeReferencedVariable.cpp 看起来像一个日期函数,应该这样做:

% Date = datestr(now, 'yyyy-mm-dd-HH-MM-SS' );
%% Matlab Version: to run the model in Matlab uncomment above, comment below
Date = '2012-09-16-09-19-20';
coder.ceval('PrintTimeReferencedVariable', coder.wref(Date));

对此的任何见解都会有很大帮助。我仍在等待作者的回复,但听到您的所有意见仍然会有所帮助,因为这是我第一次使用 C++ 并在 Matlab 中构建项目。

谢谢!

4

1 回答 1

0

似乎文本很清楚您所做的事情,尽管我可以理解不是来自 C++ 背景的混淆:

5)“项目设置”调整:打开“更多设置”,然后在“所有设置”选项卡中,选择“语言”C++;在“速度”选项卡中仅标记“整数溢出饱和”,取消标记其他所有内容;在“自定义代码”选项卡中,复制并粘贴函数“myoutput.cpp”和“PrintTimeReferencedVariable.cpp”的第一行,后跟分号或见下方文本:

void PrintTimeReferencedVariable (char * DateOut); 

void myoutput(const char* _filename, int fileNameLen, double* data, int n, int m);

因此,您创建文件“myoutput.cpp”和“PrintTimeReferencedVariable.cpp”。将代码复制并粘贴到相应的 cpp 文件中。然后将原型(第二个引号)添加到您的标题或这些文件的顶部。

于 2013-10-15T14:21:38.497 回答