📄 sparsematrixvc.cpp
字号:
// SparseMatrixVc.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "mwcomutil.h"
#import "D:\MATLAB6p5p1\bin\win32\mwcomutil.dll" raw_interfaces_only
#include "SparseMatrixText_1_0.h"
//typedef double * (MYARRAY)[10];
int main(int argc, char* argv[])
{
// Initialize COM
if ((FAILED(CoInitialize(NULL))))
{
printf("CoInitialize failed.\n");
exit(1);
}
MWComUtil::IMWSparsePtr pSparse=NULL;
HRESULT hr;
//hr=pSparse.CreateInstance(__uuidof(MWComUtil::MWSparse));
/*if(FAILED(hr))
{
return 0;
}*/
//构造一个非零元素较少的稀疏矩阵
SAFEARRAY * pa=NULL;
SAFEARRAYBOUND bound[2];
bound[0].cElements=10;
bound[0].lLbound=0;
bound[1].cElements=10;
bound[1].lLbound=0;
pa=SafeArrayCreate(VT_R8,2,bound);
double * data;
//uble * data1;
hr=SafeArrayAccessData(pa,(void**)&data);
if(FAILED(hr))
{
return 0;
}
int i=0;
for(i=0;i<9;i=i+2)
{
data[i*10+i]=i+1;
}
SafeArrayUnaccessData(pa);
//data=NULL;
ISparseMatrixText * pSparseMatrix=NULL;
hr = CoCreateInstance(CLSID_SparseMatrixText,NULL,CLSCTX_ALL,IID_ISparseMatrixText,(void**)&pSparseMatrix);
if(FAILED(hr))
{
return 0;
}
VARIANT varInput, varSparse, RowIndex, ColIndex;
VariantInit(&varInput);
varInput.vt=VT_R8|VT_ARRAY;
varInput.parray=pa;
VariantInit(&varSparse);
VariantInit(&RowIndex);
VariantInit(&ColIndex);
printf("Dislay The Original Matrix:\n");
pSparseMatrix->displaymatrix(varInput);
pSparseMatrix->sparsematrix(1,&varSparse,varInput);
printf("Display The Changed SparseMatrix:\n");
pSparseMatrix->displaymatrix(varSparse);
pSparse=varSparse.pdispVal;
pSparse->get_RowIndex(&ColIndex);
pSparse->get_ColumnIndex(&RowIndex);
VariantClear(&varSparse);
VariantClear(&varInput);
printf("The nozero element index:\n");
printf("row index: ");
pSparseMatrix->displaymatrix(RowIndex);
printf("column index:");
pSparseMatrix->displaymatrix(ColIndex);
pSparseMatrix->Release();
pSparseMatrix=NULL;
pSparse=NULL;
pa=NULL;
//构造SparseMatrix
CoUninitialize();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -