by HPC_ZY
由于剧情,需要纯C(不用三方库)实现图像算法。但作为一名MATLAB老用户,根本不知“指针”“内存”为何物。开始自信满满,结果连初始化一个二维全零矩阵都不会(尴尬),顾从零学起,在此总结。
今后会持续更新MATLAB函数的C实现,欢迎交流,共同学习。
.
注:C语言博大精深,实现方法众多。由于本文主题是M2C,所以在方法和格式上会尽量贴近MATLAB。还望各大C佬请勿吐槽。
.
一、常用数据类型对照
MATLAB | C | 字节数 |
---|---|---|
char | char | 1 |
uint8 | unsigned char | 1 |
uint16 | unsigned short int | 2 |
int32 | int | 4 |
single | float | 4 |
double | double | 8 |
利用sizeof(type)函数可返回类型的字节数
/*关于数据类型*/
printf(" MATLAB - C - Byte\n");
printf("( char = char ) %d\n", sizeof(char));
printf("( uint8 = unsigned char ) %d\n", sizeof(unsigned char));
printf("( uint16 = unsigned short int) %d\n", sizeof(unsigned short int));
printf("( int32 = int) %d\n", sizeof(int));
printf("( single = float ) %d\n", sizeof(float));
printf("( double = double ) %d\n", sizeof(double));
二、一维数组初始化
MATLAB
Num = 10;
mat1d1 = zeros(1,Num); % 默认为double
mat1d2 =