福州仓前网站建设,做网站需要什么专业,开发设计移动网站建设,哈尔滨建设局官网背景
有项目算法使用matlab中circshift函数进行运算#xff0c;这里需要将转化为C语言#xff0c;从而模拟算法运行#xff0c;将算法移植到qt。 MATLAB中circshift简单介绍 circshift是循环移位函数。可以使用于数组和矩阵元素的循环移位。 当A是数组 Bcircshift(A,p);如果…背景
有项目算法使用matlab中circshift函数进行运算这里需要将转化为C语言从而模拟算法运行将算法移植到qt。 MATLAB中circshift简单介绍 circshift是循环移位函数。可以使用于数组和矩阵元素的循环移位。 当A是数组 Bcircshift(A,p);如果p是正数则实现A从左到右的循环移位。如果p是负数则实现A从右到左的循环移位。 当A是矩阵 Bcircshift(A,[p,0]);如果p是正数则实现A以行为单位从上到下的循环移位。如果p是负数则实现从下到上的循环移位。 Bcircshift(A,[,]);如果是正数则实现以列为单位从左到右的循环移位。如果是负数则实现从右到左的循环移位。
实际maltab中使用如下代码所示其中z为96000x1列向量 x4 circshift(z,[1,0]);
测试MATLAB代码如下
Z [1 2 3 4 5 6]
Z Z
X circshift(Z,[1,0])运行结果如下图所示 clearZ [1 2 3 4 5 6]Z 1 2 3 4 5 6 Z ZZ 123456 X circshift(Z,[1,0])X 612345结果图片如下 C语言实现
代码如下所示
int circshift_1_0(unsigned char *psrc, unsigned char *pdst, unsigned int len) {// unsigned char* ptr_tmp (unsigned char*)malloc(sizeof(unsigned char) * len);// if(ptr_tmp NULL)// {// perror(fun_name);// return -1;// }pdst[0] psrc[len - 1];for(int i 1; i len; i){pdst[i] psrc[i - 1];}// free(ptr_tmp);// ptr_tmp NULL;return 0;
}