Matlab:如何创建一个函数?在这种情况下我的脚本功能

时间:2017-01-25 16:28:06

标签: matlab

我想在Matlab和c#之间创建一个接口 - >所以我必须将我的M文件翻译成DLL库"。

  • 我输入" deploytool"在命令窗口中。
  • 我选择" Libary Compiler"窗口打开。
  • For" Type"我选择了.NET程序集

所以现在我的问题来了: "添加导出的功能" - >我必须选择我的Matlab功能。 但你可以看到我的m文件是一个脚本而不是一个函数。但我需要一个功能.. 如何将其从我的脚本转换为函数?我的意思是代码。语法怎么样?我从未使用过函数。 该函数应该需要输入参数。输出应该是图表。但这是实施的(Attachement)。

diagramoptions = [];
diagramlimits = [];
inputdata = [];

diagramoptions2 = [];
diagramlimits2 = [];
inputdata2 = [];

diagramoptions3 = [];
diagramlimits3 = [];
inputdata3 = [];




wholecontent = fileread('aaaa.txt')
sections = regexp(wholecontent, '\*+([^*]+)\*+([^*]+)', 'tokens')
counter=0; %Sollte mir die Anzahl der Diagramme zurückgeben 
for section = sections
   switch(strtrim(section{1}{1}))
       case 'Diagram Options' %Diagram Options -> siehe meine Gliederung im .txt file
          keyvalues = regexp(section{1}{2}, '([^\n\r=]+)=([^\n\r=]+)', 'tokens')%\n -> new line; \r carriage return
          diagramoptions = cell2table(vertcat(keyvalues{:}), 'VariableNames', {'Key', 'Value'}) 
          counter=counter+1;
       case 'Diagram Limits'
          header = strsplit(regexp(section{1}{2}, '[^\n\r]*', 'match', 'once'))
          content = textscan(section{1}{2}, repmat('%f', 1, numel(header)), 'HeaderLines', 2)
          diagramlimits = table(content{:}, 'VariableNames', header)

       case 'Input Data'
          inputdata = cell2mat(textscan(section{1}{2}, '%f%f%f', 'HeaderLines', 1))
          %output_inputdata(1) = inputdata;

       case 'Cutoff Lines1'
          cuttofflines1 = cell2mat(textscan(section{1}{2}, '%f%f%f', 'HeaderLines', 1))%Cutofflines  


       case 'Diagram Options2' %Diagram Options -> siehe meine Gliederung im .txt file
          keyvalues2 = regexp(section{1}{2}, '([^\n\r=]+)=([^\n\r=]+)', 'tokens')%\n -> new line; \r carriage return
          diagramoptions2 = cell2table(vertcat(keyvalues{:}), 'VariableNames', {'Key', 'Value'})


       case 'Diagram Limits2'
          header2 = strsplit(regexp(section{1}{2}, '[^\n\r]*', 'match', 'once'))
          content2 = textscan(section{1}{2}, repmat('%f', 1, numel(header2)), 'HeaderLines', 2)
          diagramlimits2 = table(content2{:}, 'VariableNames', header2)    

       case 'Input Data2'
          inputdata2 = cell2mat(textscan(section{1}{2}, '%f%f%f', 'HeaderLines', 1))
          %output_inputdata(2) = inputdata;

        case 'Diagram Options3' %Diagram Options -> siehe meine Gliederung im .txt file
          keyvalues3 = regexp(section{1}{2}, '([^\n\r=]+)=([^\n\r=]+)', 'tokens')%\n -> new line; \r carriage return
          diagramoptions3 = cell2table(vertcat(keyvalues{:}), 'VariableNames', {'Key', 'Value'})

       case 'Diagram Limits3'
          header3 = strsplit(regexp(section{1}{2}, '[^\n\r]*', 'match', 'once'))
          content3 = textscan(section{1}{2}, repmat('%f', 1, numel(header3)), 'HeaderLines', 2)
          diagramlimits3 = table(content3{:}, 'VariableNames', header3)


       case 'Input Data3'
          inputdata3 = cell2mat(textscan(section{1}{2}, '%f%f%f', 'HeaderLines', 1))%dh: ich habe 1 Headerline zur besseren übersicht

       case 'Input Data4'
          inputdata = cell2mat(textscan(section{1}{2}, '%f%f%f', 'HeaderLines', 1))
          %output_inputdata(1) = inputdata;   

      otherwise
          warning('Unknown section: %s', section{1}{1})
   end
end

我的输入txt:

*******************Cutoff Lines1****************
-100    100
-200    200
******************* Diagram Options****************
rainflow=1
woehler=0
number_of_plots=4
color=red
linewidth=12
header=Number of cycles
xlabel= RPM
ylabel= Amount
cutoffvalue=53
equivcycles=1e6
equivstress=40
wsectionslope=3 3 3
ordinatelogarithmic=false
wsectionstart=1000 5000000 3000000
wsectionsend=5000000 1000000000 30000000
wsectionlinestyle=cont dashed cont
wsectionstartstress=58.02349610358 58.02349610358 130
******************* Diagram Limits****************
xmin xmax ymin ymax zmin zmax
1   111 1111111 1   1   11
*******************Input Data****************
-220.8  228 50045
-222    201.6   50045
-219.6  19.2    200176
-168    19.2    100088
******************* Diagram Options2****************
number_of_plots=4
wsectionstart=1000 5000000 3000000
******************* Diagram Limits2****************
xmin xmax ymin ymax zmin zmax
0   0   100000  1   1   1100000
*******************Input Data2****************
106.62  1
106.62  50045
18.5181 12260785
******************* Diagram Options3****************
number_of_plots=23655888855665
******************* Diagram Limits3****************
xmin xmax ymin ymax zmin zmax
0   0   100000  1   1   1100000
*******************Input Data4****************
-220.8  228 50045
-222    201.6   50045
-220.2  198 200176

0 个答案:

没有答案