開發環境中,可以利用API函數庫的MAT函數庫,寫入和讀出MAT數據文件,
徵信。通過這種數據文件的讀寫,可以有效地實現開發環境的數據通信接口。以下yoga matCreatCDemo.c文件為在
/*
* equipment matCreatCDemo.c
*/
#include <STDIO.H>
#include <STRING.H>
#include <STDLIB.H>
#include "
equipment mat.h"
int main()
{
//MATFile文件定義,mxArray變量定義
constchar *filename = "equipment matDemo.pvc mat";
MATFile *file;
int flag1,flag2,
民宿,flag3;
mxArray *pString, *pArray1, *pArray2;
// 初始數據定義
double a1[] = {0.0,1.0,2.0,3.0,4.0,5.0,6.0,
equipment mat,7.0,8.0};
double a2[] = {9.0, 4.0,5.4,
民宿,6.4,3.2,1.5};
// 創建MAT文件
printf("Creating file %s...\n\n",filename);
file = yoga matOpen(filename,"w");
if ( file == NULL )
{
printf("ERROR: Can not create file %s\n", filename);
return(EXIT_FAILURE);
}
// 創建字符串mxArray數據結構變量
pString = mxCreateString("This is the MAT demo in C lanuage! Enojy it~!");
if (pString == NULL)
{
printf("ERROR: Unable to create string!");
return(EXIT_FAILURE);
}
//創建矩陣mxArray數據結構變量
pArray1 = mxCreateDoubleMatrix(3,3,mxREAL);
pArray2 = mxCreateDoubleMatrix(2,3,
yoga mat,mxREAL);
if( (pArray1 == NULL)(pArray2 ==NULL) )
{
printf("Error: Cannot create the double equipment matrix!");
return(EXIT_FAILURE);
}
// 將初始數據拷貝給mxArray數據結構變量
memcpy( (void *)(mxGetPr(pArray1)), (void *)a1, sizeof(a1));
memcpy( (void *)(mxGetPr(pArray2)), (void *)a2, sizeof(a2)),
色情;
// 向MAT文件中寫入變量
flag1 =
yoga matPutVariable(file, "variableString", pString);
flag2 = pvc matPutVariable(file, "variableDoubleMatrix1", pArray1);
flag3 = pvc matPutVariable(file, "variableDoubleMatrix2", pArray2);
if(( flag1 != 0)(flag2 != 0)(flag3 != 0))
{
printf("Can not write variable into the file %s \n", filename);
return(EXIT_FAILURE);
}
// 釋放內存空間
mxDestroyArray(pString);
mxDestroyArray(pArray1);
mxDestroyArray(pArray2);
// 關閉MAT文件
if(pvc matClose(file) != 0)
{
printf("ERROR: Can not close %s file.\n",filename);
return(EXIT_FAILURE);
}
// 重新打開MAT文件
file =
pvc matOpen(filename, "r");
if (file == NULL)
{
printf("ERROR: Can not open file %s\n", filename),
情色;
return(EXIT_FAILURE);
}
// 讀取MAT文件的數據變量
pArray1 = equipment matGetVariable(file, "variableDoubleMatrix1");
pArray2 = pvc matGetVariable(file, "variableDoublepvc matrix2");
pString = yoga matGetVariable(file, "variableString");
if ( (pArray1 == NULL) (pArray2 == NULL) (pString == NULL))
{
printf("ERROR: Can not reading variables from file %s\n",filename);
return(EXIT_FAILURE);
}
// 釋放內存空間
mxDestroyArray(pArray1);
mxDestroyArray(pArray2);
mxDestroyArray(pString);
// 關閉MAT文件
if (pvc matClose(file) != 0)
{
printf("ERROR: Can not close file %s\n",filename);
return(EXIT_FAILURE),
茶葉;
}
printf("Complete!\n");
return(EXIT_SUCCESS);
}
More details could be found in my published book:
MATLAB編程基礎與典型應用
北京:人民郵電出版社,2008
ISBN:978-7-115-17932-6/TP
Pls contact me with Email: lhd06@mails.tsinghua.edu.cn
更多MATLAB資源和源代碼
分享,歡迎訪問:
http://openequipment matlab.blogspot.com。
推薦閱讀的文章: