📄 mwarraycreate.cpp
字号:
// mwArrayCreate.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "matlab.hpp"
#include <stdlib.h>
#ifdef GCC
#ifndef EXIT_SUCCESS
#define EXIT_SUCCESS 0
#endif
#endif
double data[] = {1,2,3,4,5,6,7,8};
int main(int argc, char* argv[])
{
/*创建二维数组*/
mwArray mwadata(2,4,data);/*从原有的double型数组中创建*/
mwArray copymwdata(mwadata);/*拷贝原有的mwArray对象*/
/*从c double型数组中创建按列存储方式的MATLAB mwArray阵列*/
mwArray mwadataRowMajor = row2mat(2,4,data);
/*创建多维数组*/
/*创建二维数组,然后采用reshape来实现*/
mwArray multiD;
multiD = reshape(mwadata,2,2,2);
/*采用MATLAB C++数学库的函数实现,如rand,zeros,randn等*/
/*MATLAB语句*/
/*rand333 = rand(3,3,3)*/
/*eye33 = eye(3,3)*/
mwArray rand333,eye33,assignArray;
rand333 = rand(3,3,3);
eye33 = eye(3,3);
/*直接采用 = 来实现*/
/*
MATLAB语句:
for i=1:3
assignArray(i,i,i)=1;
end
*/
int i=0;
for(i=0;i<3;i++)
{
assignArray(i+1,i+1,i+1)=1;
}
/*MATLAB的:运算符在MATLAB C++数学库中的实现*/
/*用ramp*/
/*MATLAB语句 rampindex = 1:3:20;colonindex = 0:2:20;*/
mwArray rampindex = ramp(1,3,20);
mwArray colonindex = colon(0,2,20);
/*MATLAB语句 D=zeros(3,3,3);D(:,:,3)=5*/
mwArray D;
D=zeros(3,3,3);
D(colon(),colon(),3)=5;
/*采用横向或者纵向连接新的数组元组的方式*/
/*MATLAB 语句 A=[1 2 3];B=[4 5 6];C=[A;B];*/
mwArray A,B,C;
A = horzcat(1,2,3);
B = horzcat(4,5,6);
C = vertcat(A,B);
cout << "mwadata= "<< mwadata<<endl;
cout << "copy of mwadata =" << mwadata << endl;
cout << "采用row2mat从按行存储的C double数组中创建按列存储的MATLAB mwArray阵列"<<endl;
cout <<"通过通配符colon实现赋值:"<<mwadataRowMajor<<endl;
cout << "通过reshape创建的2x2x2数组="<<multiD<<endl;
cout << "3x3x3随机数数组 = "<<rand333<<endl;
cout << "3x3单位矩阵 = "<<eye33<<endl;
cout << "直接通过=号创建的3x3x3维数组 = "<<assignArray<<endl;
cout << "通过ramp创建的索引数组 = "<<rampindex<<endl;
cout << "通过colon创建的索引数组 = "<<colonindex<<endl;
cout <<"D = "<<D<<endl;
cout << "横向连接产生的数组A=\t"<<A<<"B=\t"<<B<<endl;
cout << "A和B垂向连接产生的数组C="<<C<<endl;
return EXIT_SUCCESS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -