【C#】数组转置

news/2024/11/16 20:59:11/文章来源:https://www.cnblogs.com/moon-stars/p/18382664

【需求】

现有一个需求,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.hqwc.cn/news/787983.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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…

sco openserver5.0.7安装

目录启动图形化界面配置IP关机,把光盘去掉启动图形化界面 # startx配置IP # 临时配置IP # ifconfig at10 172.16.186.109 netmask 255.255.255.0 broadcast 172.16.186.255 up 设置默认网关: route add default 192.168.1.1 释义: net0 是网络接口的名称,可以根据实际情况替…

Visual Studio Release版本开启debug窗口进行调试输出。

“项目 -> 属性 -> 生成事件 ->后期生成事件 -> 命令行” 中添加: editbin /SUBSYSTEM:CONSOLE $(OutDir)\$(ProjectName).exe如下:“项目 -> 属性 -> C/C++ -> 优化 -> 优化” 中修改为: 已禁用(/Od)

引用变量

在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 反…

prometheus学习笔记之Grafana安装与配置

一、Grafana简介 grafana是⼀个可视化组件,⽤于接收客户端浏览器的请求并连接到prometheus查询数据,最后经过渲染并在浏览器进⾏体系化显示,需要注意的是, grafana查询数据类似于zabbix⼀样需要⾃定义模板,模板可以⼿动制作也可以导⼊已有模板。 Grafana的基础架构主要包括…

PHPStudy 面板在使用过程中可能会遇到各种错误

面板在使用过程中可能会遇到各种错误。这里列出一些常见的问题及其解决方法: 启动问题启动失败描述:面板启动时失败,无法正常工作。 解决方法:检查面板的日志文件,查找启动失败的具体原因。 确认服务器资源是否足够。 重新安装或更新到最新版本的 PHPStudy。网站问题网站运…

MAMP 是一款在 macOS 上搭建本地 Web 开发环境的工具

MAMP 是一款在 macOS 上搭建本地 Web 开发环境的工具,包括 Apache、MySQL 和 PHP。以下是 MAMP 中一些常见的问题及其解决方法: 安装问题安装后提示已损坏描述:安装 MAMP 后提示应用已损坏,无法打开。 解决方法:关闭系统完整性保护(SIP)。 从可信来源重新下载安装包。 使…