【C#】数组转置

news/2024/10/11 22:19:32

【需求】

现有一个需求,3行4列的从左到右从上到下的数组,转成4行3列,如图所示:

 【实现方法】

通过C#编码实现,两种方法:

第一种方法:

 public double[] transpose(double[] src, int w, int h){double[] dst = null;if (src == null || src.Length != w * h || w == 0 || h == 0){return dst;}dst = new double[w * h];for (int yy = 0; yy < h; yy++){for (int xx = 0; xx < w; xx++){dst[xx * h + yy] = src[yy * w + xx];}}return dst;}

 

第二种方法,通过指针实现:

public double[] transpose2(double[] src, int w, int h)
{double[] dst = null;if (src == null || src.Length != w * h || w == 0 || h == 0){return dst;}dst = new double[w * h];unsafe{fixed (double* srcInptr = src){double* psrc = srcInptr;fixed (double* dstInptr = dst){for (int yy = 0; yy < h; yy++){double* pdst = dstInptr + yy;for (int xx = 0; xx < w; xx++, ++psrc, pdst += h){*pdst = *psrc;}}}}}return dst;
}

 

【实现效果】

输入数组{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},输出转置后的数组{1,5,9,2,6,10,3,7,11,4,8,12}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/53462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

26-数据增广

随即水平翻转:torchvision.transforms.RandomHorizontalFlip() 上下随机翻转:torchvision.transforms.RandomVerticalFlip()) 随机剪裁,剪裁后的大小为(200,200),(0.1,1)使得随即剪裁原始图片的10%到100%区域里的大小,ratio=(0.5,2)使得高宽比为2:1,torchvision.transfor…

Python-解三元一次方程(Part.2)

一、需要解的方程组为:x + y + z = 26 x - y = 1 2x - y + z = 18 二、下面进入代码实现: 1、导入Sympy库中的符号、方程和求解函数from sympy import symbols, Eq, solve 2、定义变量x, y, z = symbols(x y z) 3、定义方程组# 方程1:x + y + z = 26 eq1 = Eq(x + y + z,…

swupdate+hawkbit部署以及测试 一

buildroot中的swupdate支持 使用的buildroot版本 # Set and export the version string export BR2_VERSION := 2021.11 # Actual time the release is cut (for reproducible builds) BR2_VERSION_EPOCH = 1638734000默认使用的swupdate版本 SWUPDATE_VERSION = 2021.04修改sw…

NFS共享存储服务介绍和部署

NFS共享存储服务的原理 1.nfs服务端创建共享存储目录; 2.nfs客户端创建远程挂载点目录 3.nfs客户端进行远程挂载; 4.实现客户端数据信息统一一致. 属于C/S 架构. 服务端部署流程: 1.检查服务器是否安装了nfs-utils 和rpcbind服务 rpm -qa |egrep "nfs-utils|rpcbind"…

Rsync实现定时自动同步备份任务

rsync全量备份 增量备份. Rsync 等价cp ,scp,rm,ls 四个命令功能.是一款实现全量及增量复制同步的软件工具. scp 命令解释: #1,从远程服务器中下载数据文件到本地主机: scp root@host1:/tmp/test1 /tmp #2,从远程服务器中拷贝目录文件到本地主机下面 scp -r root@host1:/tmp…

PostgreSQL基础

1.数据类型 1.4 布尔类型 bool 1.5 网络地址类型cidr:对ip和子网掩码合法性做校验,输出时会带子网掩码 inet:对ip做校验,输出时有可能带子网掩码 macaddr和macaddr8:MAC地址1.5.1 操作符1.5.2 函数host: 取ip地址 SELECT host(cidr 192.168.2.0/24) text: 取ip和子网掩码 …

引用变量

在C++ Primer Plus中,最开始介绍的是变量和引用变量。变量实际就包含了左值类型的变量和右值类型的变量。 引用变量 引用是C++引入的概念,引用变量是已定义的变量的别名(alias)。引用的创建示例如下: int a = 10; int &b = a;引用在定义时必须初始化,这点和const限定…

MURF1640CT-ASEMI智能AI专用MURF1640CT

MURF1640CT-ASEMI智能AI专用MURF1640CT编辑:ll MURF1640CT-ASEMI智能AI专用MURF1640CT 型号:MURF1640CT 品牌:ASEMI 封装:ITO-220AB 批号:最新 最大平均正向电流(IF):16A 最大循环峰值反向电压(VRRM):400V 最大正向电压(VF):0.95V~1..90V 工作温度:-50C~150C 反…