C# 一维数组与二维数组相互转换
class Program
{
static void Main(string[] args)
{
double[] a = { 1, 2, 3, 4, 5, 6 };
double[,] b = Row2VecD(a);
double[,] c = Row2ArrT(a, 2);
//double[,] c = RowToArrD(a, 2);
double[] d = Arr2RowD(c);
Console.WriteLine("\n行向量→列向量");
for(int i = 0; i < b.GetLength(0); i++)
{
for(int j = 0; j < b.GetLength(1); j++)
{
Console.WriteLine("b[{0},{1}]:{2}", i, j, b[i, j]);
}
}
Console.WriteLine("\n\n行向量→数组");
for (int i = 0; i < c.GetLength(0); i++)
{
for (int j = 0; j < c.GetLength(1); j++)
{
Console.WriteLine("c[{0},{1}]:{2}", i, j, c[i, j]);
}
}
Console.WriteLine("\n\n数组→行向量");
for (int i = 0; i < d.Length; i++)
{
Console.WriteLine("d[{0}]:{1}", i, d[i]);
}
Console.ReadKey();
}
//行向量→数组(内存复制版)
static double[,] RowToArrD(double[]src,int row)
{
if (src.Length % row != 0) return null;
int col = src.Length / row;
double[,] dst = new double[row, col];
for(int i = 0; i < row; i++)
{
//说明:“二维数组”【顺序储存】<=>“一维数组”
Buffer.BlockCopy(src, i * col * sizeof(double), dst, i * col * sizeof(double), col * sizeof(double));
}
return dst;
}
//行向量→列向量(内存复制版)
static double[,] Row2VecD(double[] src)
{
double[,] dst = new double[src.Length, 1];
Buffer.BlockCopy(src, 0, dst, 0, sizeof(double) * src.Length);
return dst;
}
//行向量→数组(循环版;泛型版)
static T[,] Row2ArrT<T>(T[] vec, int row)
{
if (vec.Length % row != 0) return null;
int col = vec.Length / row;
T[,] ret = new T[row, col];
for (int i = 0; i < vec.Length; i++)
{
ret[i / col, i % col] = vec[i];
}
return ret;
}
//数组→行向量(内存复制版)
static double[] Arr2RowD(double[,] src)
{
int elem = src.GetLength(0) * src.GetLength(1);
double[] dst = new double[elem];
Buffer.BlockCopy(src, 0, dst, 0, elem * sizeof(double));
return dst;
}
}
C# 一维数组与二维数组相互转换的更多相关文章
- C#的一维数组和二维数组定义方式:
一维数组: //一维数组定义与初始化 ,, };//第一种方式 , , }; //第二种方式 int[] one3; //第三种方式 one3=,,}; 二维数组: //二维数组定义与初始化 //不规 ...
- C# 数组、一维数组、二维数组、多维数组、锯齿数组
C# 数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...
- java基础5 (一维)数组和二维数组
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等)) 二维数组(二维数组的遍历.排序.查找.定义. ...
- 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)
二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...
- android JNI 一维数组、二维数组的访问与使用
在JNI中访问JAVA类中的整型.浮点型.字符型的数据比较简单,举一个简单的例子,如下: //得到类名 jclass cls = (*env)->GetObjectClass(env, obj) ...
- js一维数组转换为二维数组
function arrTrans(num, arr) { // 一维数组转换为二维数组 const iconsArr = []; // 声明数组 arr.forEach((item, index) ...
- 一维数组、二维数组——Java
一. 一维数组 1. 数组是相同类型数据的有序集合 相同类型的若干个数据,按照一定先后次序排列组合而成 每个数组元素可以通过一个下标来访问它们 其中,每一个数据称作一个数组元素 2. 数组特点: 其 ...
- 第二篇 javascript一维数组和二维数组及方法
一.数组 什么是数组 程序=数据+算法 数组就是一种很常见的保存批量数据的数据结构 一.定义数组 var arr1=[]; //定义了一个不包含元素的数组 ,,]; //定义了一个包含三个元素的数组 ...
- c#简单实现二维数组和二维数组列表List<>的转置
刚看到网上一篇文章里用sql实现了行列转置.sql server 2005/2008只用一个pivot函数就可以实现sql server 2000很多行的复杂实现.提到转置,立刻想起还在求学阶段曾经做 ...
- Java数组之二维数组
Java中除了一维数组外,还有二维数组,三维数组等多维数组.本文以介绍二维数组来了解多维数组. 1.二维数组的基础 二维数组的定义:二维数组就是数组的数组,数组里的元素也是数组. 二维数组表示行列二维 ...
随机推荐
- 前端如何对cookie加密
在前端对 Cookie 进行加密时,你可以使用加密算法对 Cookie 的值进行加密,然后再将加密后的值存储到 Cookie 中.常用的加密算法包括对称加密算法(如 AES)和非对称加密算法(如 RS ...
- 【u8 login debug】u8 16.0 没有调试 login的解决办法
16.0 没有调试 login,改一下注册表 就行[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ufsoft\WF\V8.700]"Enable.Debu ...
- CentOS搭建Jellyfin影音服务器
一. 安装Jellyfin 之前介绍过Docker安装jellyfin,但Docker安装方式存在一些限制,于是一起学习一下用RPM包在CentOS 7下安装方法. 先安装需要的依赖: yum ins ...
- CF1753
CF1753 成功因为虚拟机炸了,重新写一遍此文. 都是没有保存的错. A. Make Nonzero Sum 由于 Note that it is not required to minimize ...
- oop课程4-6次作业小结
目录 (1)前言 (2)设计与分析 第四次作业(答题判题程序-4) 新增多选类 新增填空类 第五次作业(家居强电电路模拟程序-1) Element类 控制设备 开关# 分档调速器# 受控设备 白炽灯# ...
- django通过celery定时任务
settings.py # Broker配置,使用Redis作为消息中间件 BROKER_URL = 'redis://127.0.0.1:6379/0' # BACKEND配置,这里使用redi ...
- Java中PDF的转换(图片)与展示
解决的问题 有些时候我们需要在项目中展示PDF,但是直接在浏览器中加入PDF展示的插件,存在兼容性问题,某些浏览器显示效果不理想,所以我们可以将PDF转为图片,然后已图片的方式展示,效果很好. 那么怎 ...
- Merry Christmas 礼物
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` Merry Christmas 礼物 日期:2020-12 ...
- resttemplate调用
Map<String, Object> queryForHttp(String url, Map<String, Object> header, Map<String, ...
- docker 单机部署redis集群
docker 部署redis集群 1.创建redis网卡 docker network create redis --subnet 172.38.0.0/16 查看网卡信息 docker networ ...