當前位置:首頁 » 編程軟體 » matlab函數編譯

matlab函數編譯

發布時間: 2022-12-11 14:44:57

㈠ MATLAB中怎麼在編譯器中定義一個四則運算函數

clccleara=round(rand*90)+10;b=round(rand*90)+10;c=input('請輸入一個四則運算符號,請用單引號括起來');switchccase'+'d=a+b;case'-'d=a-b;case'*'d=a*b;case'/'d=a/b;endd示範:請輸入一個四則運算符號,請用單引號括起來'*'d=7520

㈡ matlab函數編寫

MATLAB有自己的文本編輯器,不需要在記事本中寫。
創建一個可調用的M文件函數有好多種方法:
1、File->New->Function,MATLAB會自動打開editor,並且創建一個帶有標准格式的m文件,你可以自己補充需要的功能;
2、也可以直接點擊File下方的創建按鈕,生成一個空白的文檔,然後自己按照函數格式編寫代碼。

代碼寫完後要保存成 .m文件,文件名必須與函數名稱相同,且需保存在當前目錄(Current Folder)下

㈢ MATLAB程序如何編譯產生DLL

把一個簡單的m代碼編譯成C++介面的DLL,然後在C++程序中調用。為了簡單起見,這里的C++程序是一個Win32 Console程序,而不是Windows圖形界面的程序,不過不妨礙我們的討論。

下面是這個例子用到的m代碼。它定義了一個名為myadd2的函數

function [y,z] = myadd2(a, b)

% mmy function, just to demonstrate the idea

y = a+b;

z = a+2*b;

end
復制代碼
首先把這個函數編譯成C++介面的DLL。為此,我們需要先設置MATLAB編譯器。具體做法是在MATLAB命令行執行「mbuild -setup」。然後用下面這行命令把myadd2函數編譯成一個C++介面的DLL:

mcc -W cpplib:libmyadd2 -T link:lib myadd2
復制代碼
結果,我們將會得到包含libmyadd2.dll,libmyadd2.ctf,libmyadd2.h,libmyadd2.lib等在內的一些文件。接下來我們只需要這四個文件。

然後在VS2005中創建一個Win32 Console的VC++工程,我在測試時取名為testmyadd2_r2007b。把以上四個文件拷貝到VC++工程的源代碼所在目錄。

接下來設置VC++,讓它能找到MATLAB介面函數的定義及連接庫函數。可以有兩種設置方式:一種是改VS2005中關於VC++的設置,這樣的好處是每個新的工程都能自動獲得這個設定;而另一種是只改當前工程的設置,也就是設置只對該工程有效。這里用後一種方式。

在VS2005中打開工程testmyadd2_r2007b,選擇菜單「Project-->;Properties,在出來的對話框上,把MATLAB提供的include路徑加到VC++的頭文件搜索路徑。

然後把相應的lib所在目錄加到linker的額外搜索路徑上

接下來,告訴VC++,我們的這個程序需要連接到另外兩個額外的庫函數:libmyadd2.lib和mclmcrrt.lib。中間用空格隔開

最後則是程序代碼。這個程序只有一個main函數,其完整代碼附在下面給大家參考。

#include "stdafx.h"

#include <iostream>

#include "mclmcr.h"

#include "mclcppclass.h"

#include "libmyadd2.h"

int _tmain(int argc, _TCHAR* argv[])

{

std::cout << "Hello world!" << std::endl;

/* Initialize the MCR */

if( !mclInitializeApplication(NULL,0) )

{

std::cout << "Could not initialize the application!" << std::endl;

return -1;

}

// initialize lib

if( !libmyadd2Initialize())

{

std::cout << "Could not initialize libmyadd2!" << std::endl;

return -1;

}

try

{

// declare and initialize a

mwArray a(2, 2, mxDOUBLE_CLASS);

double *aData;

aData = new double[4];
復制代碼
本帖隱藏的內容
int i;

for( i=0; i<4; ++i)

{

aData = 1.0*i;

}

// print output

std::cout << "a = " << std::endl;

std::cout << aData[0] << ",\t" << aData[1] << std::endl;

std::cout << aData[2] << ",\t" << aData[3] << std::endl;

a.SetData(aData, 4);

// declare and initialize b

mwArray b(2, 2, mxDOUBLE_CLASS);

b(1,1) = 11.;

b(1,2) = 12.;

b(2,1) = 21.;

b(2,2) = 22.;

mwArray y(2, 2, mxDOUBLE_CLASS);

mwArray z(2, 2, mxDOUBLE_CLASS);

// call the function

myadd2(2, y, z, a, b);

// data from mwArray to C++ objects

// allocate outputs

double *yData, *zData;

yData = new double[4];
復制代碼

if( yData == NULL )

{

std::cout << "Failed to allocate memory for yData!" << std::endl;

return -1;

}

zData = new double[4];

if( zData == NULL )

{

std::cout << "Failed to allocate memory for zData!" << std::endl;

return -1;

}

// data from mwArray to C++

y.GetData(yData, 4);

z.GetData(zData, 4);

// print output

std::cout << "y = " << std::endl;

std::cout << yData[0] << ",\t" << yData[1] << std::endl;

std::cout << yData[2] << ",\t" << yData[3] << std::endl;

std::cout << "z = " << std::endl;

std::cout << zData[0] << ",\t" << zData[1] << std::endl;

std::cout << zData[2] << ",\t" << zData[3] << std::endl;

// deallocate memory

delete [] aData;

delete [] zData;

delete [] yData;

}

catch( const mwException& e)

{

std::cerr << e.what() << std::endl;

}

// terminate the lib

libmyadd2Terminate();

// terminate MCR

mclTerminateApplication();

return 0;

}

㈣ MATLAB 函數編寫

首先建立M文件或直接點擊(File/New/Function)建立函數文件,其中函數文件的格式是:function[輸出變數]=函數名稱(輸入變數)%注釋%函數體舉例說明:假設有個函數y=2*x^2+3*x+4,編寫一個子函數(自定義函數)建立1個*.m文件,文件內

㈤ matlab調用C++函數,編譯出錯

檢查那個位置究竟有沒有那個文件。

測試的話,可以直接把文件頭的內容復制粘貼到cpp最前面。

㈥ 請教關於利用Matlab中「mex」命令編譯C程序的問題

1.准備好C語言程序,清楚C語言的入口函數
2.編寫mexfunction函數。mexfunction函數為C語言與MATLAB語言的介面函數。調用實例在mylinedetect.c文件中.在MATLAB中調用mex指令編譯相關文件,將C語言編譯為MEX文件。
3.編譯完成後,生成mylinedetect.mexw32或mylinedetect.mexw64文件,此文件即mex文件,用於MATLAB與C語言介面函數.
4.編譯完成之後,編寫MATLAB函數,調用MEX文件。以MEX文件的形式調用編譯完成的C語言函數[o1,o2]=mylinedetect(double(X).');......
5.輸出結果,上述linedetect函數完成圖像中直線檢測功能,帶入MATLAB中調用後形成結果。

熱點內容
蘋果7鎖屏密碼怎麼改 發布:2025-07-04 14:04:44 瀏覽:709
P三零是什麼配置 發布:2025-07-04 13:58:41 瀏覽:361
哪個安卓機有長方形home鍵 發布:2025-07-04 13:43:58 瀏覽:861
android腳本錄制 發布:2025-07-04 13:17:47 瀏覽:342
嵌入式和安卓哪個硬體成本高 發布:2025-07-04 13:05:56 瀏覽:229
360代理伺服器怎麼設置 發布:2025-07-04 12:49:49 瀏覽:515
iphone在哪清除緩存 發布:2025-07-04 12:49:38 瀏覽:340
代理訪問網址 發布:2025-07-04 12:47:50 瀏覽:400
分頁存儲的管理方式 發布:2025-07-04 12:47:45 瀏覽:495
linux與windows路徑 發布:2025-07-04 12:41:42 瀏覽:461