连接二维数组

2024-04-09

我有两个数组 mat1 和 Mat2。 我想要 new_mat=[ma1,mat2]; 我写了一个可以运行的函数。我想知道是否有一个适用于非常大的矩阵的有效函数或者如何使用 Array.CopyTo 方法来做到这一点。

public static double[,] Concatenate_matrix_byCol(double[,] Mat1, double[,] Mat2)
{
    int col1=Mat1.GetLength(1);
    int col2 = Mat2.GetLength(1);
    int row1=Mat1.GetLength(0);
    int row2 = Mat2.GetLength(0);
    int i, j,  y;
    double[,] newMat = new double[row1, col1 + col2];

    for (i = 0; i < row1; i++)
    {
        for (j = 0; j < col1; j++)
        {
            newMat[i, j] = Mat1[i, j];
        }
    }                
    for (i = 0; i < row1; i++)
    {
        for (y = 0; y < col2; y++)
        {
            newMat[i, y+col1] = Mat2[i, y];
        }
    }
    return newMat;
}

您可以将循环合并为:

for (i = 0; i < row1; i++)
{
     for (j = 0; j < col1; j++)
         newMat[i, j] = Mat1[i, j];

     for (y = 0; y < col2; y++)
         newMat[i, y+col1] = Mat2[i, y];
}

也许可以使用指针(首先测试性能!),但库无疑是最好的解决方案。这样您就不必自己进行微观优化。

此线程中提到了很多 .Net 库:.NET 矩阵库 https://stackoverflow.com/questions/840360/matrix-library-for-net

根据您的性能要求,您还可以研究并行算法,您可能会受到以下启发http://innovatian.com/2010/03/parallel-matrix-multiplication-with-the-task-parallel-library-tpl/ http://innovatian.com/2010/03/parallel-matrix-multiplication-with-the-task-parallel-library-tpl/。同样,一个构建良好的库可能已经拥有并行算法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接二维数组 的相关文章

随机推荐

  • 将字符串拆分为数组数组[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在写一个iOS App in 斯威夫特 4 2 来自服务器的响应是一个字符串 其值由管道字符 分隔 它包含许多行值
  • Bash:如何仅在完整的行中复制交互式脚本的输入/输出?

    如何实时捕获脚本的输入 输出 例如使用 tee 但逐行而不是逐个字符 我的目标是仅在退格键和自动完成完成处理后 按下 RETURN 键后 捕获输入到脚本交互式提示中的输入 具体来说 我正在尝试为 ssh 创建一个包装器脚本 该脚本创建远程服
  • 无法从 SwingWorker 类更新 JProgressBar

    我有我的主 GUI 线程 其中有一个 JprogressBar 并正在实现 ProprtyChangeListener 当按下按钮时 扩展 SwingWorker 的不同类就会启动并执行一系列可能很长的计算 我需要 A 类中的进度条来根据
  • npm 崩溃并显示“ERR!cb() 从未调用”

    我试图使用安装 vue cli npm install g vue cli 我收到以下错误 Unhandled rejection Error EACCES permission denied mkdir home moeketsi npm
  • Android ffmpeg 简单 JNI 包装器

    我一直在尝试使用带有命令行访问的 ffmpeg 二进制文件一段时间 但一无所获 使用runtime exec 看起来我能够让它工作的唯一方法是使用 C 中的包装器来使用 JNI 访问构建的 ffmpeg 库 主要问题 我已经有超过五年没有编
  • Guava 地图中的驱逐惰性

    当前的地图驱逐算法相当懒惰 看起来过期的对象只有在访问数据结构时才会被驱逐 例如 从地址到索引器的映射定义为 ConcurrentMap
  • 将控件定位在复选框的中间

    这是我之前问题的后续 依赖于字体的控制定位 https stackoverflow com questions 37306 font dependent control positioning 这是试图解决这个问题real这个问题背后的问题
  • BigTable中的布隆过滤器可以仅根据行ID进行过滤吗?

    BigTable 使用布隆过滤器来允许点读取 以避免访问给定键列对内不包含任何数据的 SSTable 如果查询只指定行 ID 而没有列 ID 这些布隆过滤器是否也可用于避免访问 SSTable BigTable 使用行列对作为插入其布隆过滤
  • 检测ES模块是否在Node中从命令行运行

    在 Node 中使用 CommonJS 模块时 您可以使用以下命令检测脚本是否正在从命令行运行require main module 在 Node 中使用 ES 模块时 检测脚本是否正在从命令行运行的等效方法是什么 使用 experimen
  • 套接字编程Python:如何确保收到完整消息?

    我正在使用 python 3 x 和套接字模块 服务器在 ipv4 地址上运行并使用 tcp 我阅读了一些有关如何发送和接收数据的教程 对于服务器或客户端 要确保发送整个消息 您可以简单地检查发送的数据量是否等于消息的大小 def myse
  • 将 Foreach 分成线程示例

    我想跑 SearchResultByOrderNumber string orderNumber 中的方法Foreach与多线程 有十个订单号OrderNumbers数据表 在搜索这些 OrderNumbers 时OrderResultsD
  • 为什么 babel 将“true”转换为“!0”

    我检查了我转换后的代码 我看到了true被转换为 0 Example let obj loading true 转换为 let obj loading 0 这是为什么 是因为性能原因还是其他原因 对于小型化 即 更小的包大小 也可以看看 b
  • Python 委托模式 - 如何避免循环引用?

    我想问在Python中使用委托模式是否会导致循环引用 如果是的话 实现它以确保对象及其委托将被垃圾收集的最佳方法是什么 在 Objective C 中 通过使用委托的弱引用来避免上述问题 在 C 中 我们不会对委托调用删除 我在这里找到了
  • AWS 在 Google 云 (GCP) 中承担同等角色吗?

    如何在GCP中设置多帐户 项目 在AWS中可以通过使用assume role 有人知道如何在 Google Cloud Platform GCP 中执行此操作吗 我尝试在 GCP 中探索 AWS 等效项 但找不到任何文档 据记载 承担角色
  • WPF DropShadowEffect - 意外的色差

    我有一个带有 DropShadowEffect 的 TextBlock 某些阴影颜色显示得比指定的颜色更深 几乎就像它们被染色一样 然而 并非每种颜色都会发生这种情况 有谁知道为什么 或者有纠正的方法吗 这是一个非常基本的示例
  • 从网络浏览器中检测和访问 USB 设备 - 即使用插件

    是否可以通过插件 activeX Java 或 Flex 编写一个能够检测从 USB 设备通道读取数据流的浏览器插件 我做了一些研究 但没有找到答案 http support microsoft com kb 832678 http sup
  • 如何向 Visual Studio 2017 或 Visual Studio 2019 注册“自定义工具”以使其正常工作?

    背景 我们有一个定制工具 https msdn microsoft com en us library bb166817 aspx它接受 xml 输入并生成 cs 输出 自定义工具需要注册 https learn microsoft com
  • 从 mysql 迁移后 postgres 数据库不工作

    我在sequelize中将MySQL数据库更改为postgreSQL 但是迁移后我对表或模型中的大小写首字母有问题 在我的 MySQL 版本正常工作之前 但在迁移之后我收到错误消息 500 SequelizeDatabaseError re
  • Django HTML 截断

    我正在使用内置截断words html https docs djangoproject com en dev ref templates builtins from olddocs truncatewords htmlDjango 的过滤
  • 连接二维数组

    我有两个数组 mat1 和 Mat2 我想要 new mat ma1 mat2 我写了一个可以运行的函数 我想知道是否有一个适用于非常大的矩阵的有效函数或者如何使用 Array CopyTo 方法来做到这一点 public static d