利用string 字符串拷贝
序言:对于laws的代码,完全从Matlab中转来。其中用到了字符串复制和对比的函数。
C++要求:
输入字符串,根据字符串,来确定选择数组,用于下一过程
MatLab代码:
(1).文件calLaws.m
function [y,h_v,h_h]=calLaws(x,id,LocalEnergy)for dim=1:2if dim==1FilterId=upper(id(1:2)); % Input argument "id" is undefined.elseFilterId=upper(id(3:4));endif strcmp(FilterId,'L5'), h(dim,1:5)=[ 1 4 6 4 1];elseif strcmp(FilterId,'E5'), h(dim,1:5)=[-1 -2 0 2 1];elseif strcmp(FilterId,'S5'), h(dim,1:5)=[-1 0 2 0 -1];elseif strcmp(FilterId,'W5'), h(dim,1:5)=[-1 2 0 -2 1];elseif strcmp(FilterId,'R5'), h(dim,1:5)=[ 1 -4 6 -4 1];elseif strcmp(FilterId,'__'), h(dim,1:5)=[ 0 0 1 0 0];endendh_v=h(1,:);h_h=h(2,:);y=filter2(h_v,filter2(h_h,x));if exist('LocalEnergy')==1 y=avgsmth(abs(y),LocalEnergy);%LocalEnergyz作为整数出现!end
(2).文件avgsmth.m
function y=avgsmth(x,M,N)if nargin<3,%输入参数小于3N=M;endw=ones(M,1)/M;y=filter2(w,x);w=ones(1,N)/N;y=filter2(w,y);
(3).C++代码实现:使用String对象实现
void CGrayCal::calLaws(string id1,string id2)
{int numL,numR;int i,j;int k;int KerNum;i=0;j=0;k=0;numL=id1.size();numR=id2.size(); char FilterL[5];char FilterR[5];strcpy(FilterL,id1.c_str());strcpy(FilterR,id2.c_str());*///生成卷积核,利用字符串拷贝 KerNum =numL*numR;ConvKer=new ConvKernel[KerNum];//声明卷积核,内部数据结构,里面包含5*5矩阵int L5[] = { 1 , 4, 6 , 4 , 1};int E5[] = {-1, -2 , 0 , 2 , 1};int S5[] = {-1 , 0, 2, 0, -1};int W5[] = {-1 , 2 , 0 ,-2 , 1};int R5[] = { 1, -4, 6 ,-4, 1};int __[] = { 0 , 0 , 1 , 0, 0}; //(all pass)int TempL[5];int TempR[5];for(i=0;i<numL;++i){for(j=0;j<numR;++j){if ( id1.substr(i,1)=="L")//获得子串进行比较!!!memcpy(TempL,L5,sizeof(int)*5);if ( id1.substr(i,1)=="E")memcpy(TempL,E5,sizeof(int)*5);if ( id1.substr(i,1)=="S")memcpy(TempL,S5,sizeof(int)*5);if ( id1.substr(i,1)=="W")memcpy(TempL,W5,sizeof(int)*5);if ( id1.substr(i,1)=="R")memcpy(TempL,R5,sizeof(int)*5);if ( id2.substr(i,1)=="L")memcpy(TempR,L5,sizeof(int)*5);if ( id2.substr(i,1)=="E")memcpy(TempR,E5,sizeof(int)*5);if ( id2.substr(i,1)=="S")memcpy(TempR,S5,sizeof(int)*5);if ( id2.substr(i,1)=="W")memcpy(TempR,W5,sizeof(int)*5);if ( id2.substr(i,1)=="R")memcpy(TempR,R5,sizeof(int)*5);memcpy(ConvKer[k].vector1,TempL,sizeof(int)*5);memcpy(ConvKer[k].vector2,TempR,sizeof(int)*5);vectorPlus(TempL,TempR,ConvKer[k].ConvMat);++k;}}
此段代码实现了输入指定字符串(大写),根据字符串来确定使用所指定的数组,进行左右相乘,得到必要的卷积核。
利用string 字符串拷贝相关推荐
- java mysql判断字符串相等_【Java】利用String的compareTo比较两个时期字符串
在<[Java]比对两个以字符串形式表示的时期是否相差超过1天>(点击打开链接)曾经介绍过,如果利用字符串的截取来比较两个在数据库中取出来,被特定格式化的日期.然而,这具有一定的局限性,最 ...
- 利用string.Spit截取到对应键查找与获得所有键string.Contains查找字符串内部是否存在对比
同文件string.Spit截取到对应键后根据查找耗时(第一次1分30秒以上.且仅运行下图部分代码.然后弄得电脑卡死了!) 获得所有键利用string.Contains查找字符串内部是否存在耗时1分钟
- strlcpy和strlcat——一致的、安全的字符串拷贝和串接函数
strlcpy 和 strlcat-- 一致的.安全的字符串拷贝和串接函数 Todd C. Miller University of Colorado, Boulder Theo de Raadt O ...
- thinking-in-java(13) String字符串
[13.1]不可变String 1)String对象是不可变的,具有只读特性: [荔枝-String对象是不可变的] public class Immutable {public static S ...
- Java性能优化之String字符串优化,BAT 面试官 如何面试
写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 字符 ...
- 【java学习】String字符串
1,概念 1)String 不可变 不可变类:final,不可被继承. public final class String implements java.io.Serializable, Compa ...
- 内置对象的API Array数组对象 String字符串对象 json字符串 JSON对象 js作用域及变量预解析 引用类型与值类型区别 共享引用 基本包装类型 数组去重
01-内置对象的API a.Date对象获取时间 b.Array对象数组加工 c.String对象字符串加工 d.json字符串的语法格式 e.JSON对象的字符串与对象转换应用 02-JS作用域 a ...
- linux c strdup 字符串拷贝
#include <string.h> char *strdup(const char *s); 函数介绍: strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函 ...
- linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...
今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...
最新文章
- 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)
- JZOJ 5909. 【NOIP2018模拟10.16】跑商(paoshang)
- QHD DDIC is implemented via HANA
- el-table列宽自适应;el-table表格的列根据内容自动撑满;el-table内容换行问题;
- silverlight 通过WCF与LinQ对数据库进行操作1
- 给model模型传数组参数
- linux下namp简单使用
- 西方哲学史人物学说时间线
- 如何根本上解决屎山代码的问题
- 走楼梯(斐波那契数列)
- Ubuntu 20.04安装GTX 1060显卡驱动+cuda 11.4 + cudnn 8,nvidia-smi 报错:NVIDIA-SMI has failed
- 信息隐藏——第四章 图像信息隐藏数
- php在线客服:TP6+workerman实现
- python cnn 实例_在Keras中CNN联合LSTM进行分类实例
- 进大厂就一定要考研吗?答案毫无疑问是否定的
- esp8266-01s控制继电器开关
- 本特利振动传感器123617-XXX-XXX-05-02-00 MOD:159811-000-130
- PDF2Word v1.40 汉化版
- 面试复习题--音视频
- 从递推式到通项公式 特征方程学习笔记