当前位置: 首页 > news >正文

MATLAB中circshift函数转化为C语言

背景

有项目算法使用matlab中circshift函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。

MATLAB中circshift简单介绍

circshift是循环移位函数。可以使用于数组和矩阵元素的循环移位。

当A是数组

B=circshift(A,p);如果p是正数则实现A从左到右的循环移位。如果p是负数则实现A从右到左的循环移位。

当A是矩阵

B=circshift(A,[p,0]);如果p是正数则实现A以行为单位,从上到下的循环移位。如果p是负数则实现从下到上的循环移位。

B=circshift(A,[0,p]);如果p是正数则实现A以列为单位,从左到右的循环移位。如果p是负数则实现从右到左的循环移位。

实际maltab中使用如下代码所示,其中z为96000x1列向量

    x4 = circshift(z,[1,0]);

测试MATLAB代码如下

Z = [1 2 3 4 5 6]
Z = Z'
X = circshift(Z,[1,0])

运行结果如下图所示

>> clear
>> Z = [1 2 3 4 5 6]Z =1     2     3     4     5     6>> Z = Z'Z =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;
}

http://www.lryc.cn/news/152197.html

相关文章:

  • 浅谈React生命周期
  • 基于龙格-库塔算法优化的BP神经网络(预测应用) - 附代码
  • C++ 获取进程信息
  • 【Redis从头学-13】Redis哨兵模式解析以及搭建指南
  • 【个人笔记js的原型理解】
  • Liunx系统编程:信号量
  • 大集合按照指定长度进行分割成多个小集合,用于批量多次处理数据
  • ELK日志收集系统集群实验(5.5.0版)
  • 基于java swing和mysql实现的电影票购票管理系统(源码+数据库+运行指导视频)
  • 数据结构--6.0最短路径
  • Docker进阶:mysql 主从复制、redis集群3主3从【扩缩容案例】
  • 遗传算法决策变量降维的matlab实现
  • 基于Open3D和PyTorch3D读取三维数据格式OBJ
  • 带纽扣电池产品出口澳洲安全标准,纽扣电池IEC 60086认证
  • spring高级源码50讲-37-42(springBoot)
  • 腾讯云、阿里云、华为云便宜云服务器活动整理汇总
  • L1-055 谁是赢家(Python实现) 测试点全过
  • 开发一个npm包
  • 介绍几种使用工具
  • Vue:关于声明式导航中的 跳转、高亮、以及两个类名的定制
  • Sharding-JDBC分库分表-自动配置与分片规则加载原理-3
  • E8267D 是德科技矢量信号发生器
  • Git git fetch 和 git pull 区别
  • 软件UI工程师工作的岗位职责(合集)
  • Mac系统Anaconda环境配置Python的json库
  • Python数据分析与数据挖掘:解析数据的力量
  • 我的私人笔记(安装hive)
  • 【kubernetes】k8s部署APISIX及在KubeSphere使用APISIX
  • 串口接收数据-控制LED灯
  • python面试题合集(一)