首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC 與 MATLAB 聯合程式設計 (六) — C/C++ 數學函式庫使用指南

     編輯:關於VC++

MATLAB C/C++ 數學函式庫簡介

MATLAB C/C++ 數學函式庫是擴充功能的重要組成部分,包含大量以 C/C++ 重寫的 MATLAB 函數:初等數學、線性代數、矩陣運算、數值計算、特殊數學、多項式、插值等。開發者可在自有 C/C++ 程式中呼叫這些函數,實現複雜矩陣運算,減少開發工作量。注意:C 函式庫與 C++ 函式庫是兩套不同的庫。

安裝與編譯器設定

在 MATLAB 指令視窗依序執行:

mbuild -setup
mex -setup

皆選擇 VC 編譯器,完成設定。

C 數學函式庫範例 (官方 ex1.c)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "matlab.h"          // C 數學庫標頭檔

static double real_data[] = {1,2,3,4,5,6};
static double cplx_data[] = {7,8,9,10,11,12};

int main()
{
    mxArray *mat0 = NULL, *mat1 = NULL;
    mlfEnterNewContext(0, 0);                     // 自動記憶體管理
    mlfAssign(&mat0, mlfDoubleMatrix(2, 3, real_data, NULL));
    mlfAssign(&mat1, mlfDoubleMatrix(3, 2, real_data, cplx_data));
    mlfPrintMatrix(mat0);
    mlfPrintMatrix(mat1);
    mxDestroyArray(mat0);
    mxDestroyArray(mat1);
    mlfRestorePreviousContext(0, 0);
    return EXIT_SUCCESS;
}

VC 專案設定步驟

  1. 開啟 ex1.c (位於 matlab\extern\examples\cmath)。
  2. 設定標頭檔路徑 (Tools → Options → Directories → Include):
    • D:\matlab\extern\include\cpp
    • D:\matlab\extern\include

    標頭檔路徑

    圖 2

  3. 設定庫檔路徑 (Library 分頁):
    • D:\matlab\extern\lib\win32\microsoft\msvc60
    • D:\matlab\extern\lib
    • D:\matlab\bin

    庫檔路徑

    圖 3

  4. 加入庫檔 (Project → Settings → Link → General → Object/Library Modules): 將 msvc60 目錄下所有 .lib 檔名加入。

    庫檔加入

    圖 4

執行結果

程式執行結果

圖 1

函式庫分類與常用函數

MATLAB C 內建數學庫

  • 通用功能函數
  • 運算子與特殊矩陣
  • 基本矩陣操作
  • 初等數學函數
  • 線性代數函數
  • 數據分析與傅立葉轉換
  • 字串、檔案 I/O、資料型別函數

MATLAB M-file 函式庫

  • 運算與特殊功能
  • 基本矩陣操作、基礎數學、特殊數學
  • 線性代數、數值分析與傅立葉
  • 多項式與插值、函數的函數與常微分方程
  • 字串、檔案讀寫、資料型別、稀疏矩陣

詳細用法請參考 MATLAB 說明文件。

C++ 數學函式庫

在 C 函式庫基礎上以類別封裝,支援多載、繼承等 C++ 特性。主要差異:C++ 以類別定義資料結構,C 則用結構體。注意:MATLAB 7.0 不再使用 C/C++ 函式庫,上述方法在 7.0 會出錯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved