精华内容
下载资源
问答
  • 2021-04-15 01:40:03

      本文就这么朴实无华且枯燥地向大家分享C#中: 一维数组二维数组 的相互转换(一维→二维;二维→一维)……希望能帮到有需求的小伙伴(*^▽^*)。全文完整代码(直接复制运行)如下:

    using System;
    
    namespace testCodes0411
    {
        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;
            }
        }
    }
    
    

      友情提示:若顾及效率,最好使用 内存复制版 函数

    参考博文:

    1. C#中,一维数组如何合并成二维数组?除循环赋值有无其他方法?
    2. C#数据结构-Array.Copy和Buffer.BlockCopy详解.
    更多相关内容
  • 主要介绍了PHP实现一维数组二维数组的方法,实例分析了php操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 下面小编就为大家分享一篇JavaScript实现一维数组转化为二维数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了PHP实现一维数组与二维数组去重功能,结合实例形式分析了php针对一维数组与二维数组进行遍历、判断、排序、去重等相关操作技巧,需要的朋友可以参考下
  • 主要介绍了Java编程一维数组转换成二维数组,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
  • 今天小编就为大家分享一篇Python3实现将一维数组按标准长度分隔为二维数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 在开发过程中,我们经常需要将二维数组转为一维数组,个人总结了2种方法,分享给大家
  • 主要介绍了详解C++中的一维数组二维数组,是C语言入门学习中的基础知识,需要的朋友可以参考下
  • 主要介绍了PHP实现二维数组(或多维数组)转换成一维数组的常见方法,结合实例形式总结分析了PHP数组遍历、转换所涉及的array_reduce、array_walk_recursive及array_map函数常见使用技巧,需要的朋友可以参考下
  • 我们生成了个维度为2的二维数组,其中两个索引值:矩阵的行和列 transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置 arr.transpose() 我们可以直观的看到,数组的行列索引值对换,1的...
  • 主要介绍了php实现给二维数组中所有一维数组添加值的方法,涉及php针对数组的遍历、转换、赋值等相关操作技巧,需要的朋友可以参考下
  • 今天小编就为大家分享一篇Python numpy实现二维数组一维数组拼接的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了Thinkphp将二维数组变为标签适用的一维数组方法,总结了常见的转化数组方法,非常实用,需要的朋友可以参考下
  • Python中创建二维数组

    2020-12-25 10:38:18
    Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组。如果直接使用a = [][]会产生SyntaxError: invalid syntax语法不正确错误。 一般Python中创建二维数组的方法是使用列表解析的方法 列表...
  • 判断一维数组是否存在二维数组里 不存在就push到二维数组中形成二维数组,存在则不用管
  • C#中的二维数组

    2021-01-06 15:01:41
    两个下标的数组称为二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组” 创建方式:数组类型[,] 数组名; 如:int[,] map; 二维数组的初始化 动态初始化 1.数据类型[,] 数组名 = new 数据类型...
  • 我定义了这样个数组,我想把这个数组作为参数,传递到个函数中,并要在函数中能引用该二维数组的元素,我该怎么做?  第种方式是直接传递二维数组,但是必须标明第二维的值,因为如果只是传递a[][],编译器...
  • C# json 一维数组二维数组的转换 写的非常详细,对大家帮助
  • VBA获取二维数组行或列,不用遍历的方法,直接取出多维数组的行或
  • 在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>array( 'id' => 6, 'name' => '李四' ) ); 目的就是要取到key为name的集合,得到这个结果...
  • 下面小编就为大家带来一篇浅谈java中的一维数组二维数组、三维数组、多维数组。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 声明一维数组:var goodsArr = []; 赋值:goodsArr[0] = ‘First Value’; 这个毫无争议,因为平时使用PHP比较多,而php语法是可以直接使用goodsArr[0] = ‘First Value’; 这种方法声明数组并赋值的,但js不能这样...
  • 好不容易把数组叠加在块儿了,新的需求又出现了:将三维数组展开成二维数组还,再借不难。今天就来解决把三维数组展开成二维数组的问题。 相对于叠加三维数组,numpy对展开数组支持得很好,只需要用好np....
  • 今天小编就为大家分享篇Python reshape的用法及多个二维数组合并为三维数组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享篇解决Python二维数组赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享篇Numpy将二维数组添加到空数组的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • c语言中经常需要通过函数传递二维数组三种方法可以实现,如下: 方法, 形参给出第二维的长度。 例如: #include void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr...
  • 下面小编就为大家带来篇java String 转成Double二维数组的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 二维数组一维数组

    2015-04-13 20:58:19
    将labview内二维数组方便的转化为一维数组使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 525,602
精华内容 210,240
关键字:

一维数组与二维数组有何区别