如何将指针分配给矩阵的对角线?

2023-12-09

我有一个矩阵说REAL*8 MATRIX(100,100),我想仅从主对角线或上三角形创建一个指针。怎么做?

目的是以干净的“命名”方式轻松访问这些元素。


对于主对角线,请小心,您可以执行以下操作:

PROGRAM diagonal
  IMPLICIT NONE
  REAL, TARGET :: array(4,4)
  REAL, POINTER :: ptr(:)
  INTEGER :: i
  array = RESHAPE([(i,i=1,SIZE(array))], SHAPE(array))
  CALL get_diagonal_pointer(array, SIZE(array, 1), ptr)
  PRINT "(*(G0,:,','))", ptr
CONTAINS
  SUBROUTINE get_diagonal_pointer(arr, n, ptr)
    REAL, INTENT(IN), TARGET :: arr(*)
    INTEGER, INTENT(IN) :: n
    REAL, INTENT(OUT), POINTER :: ptr(:)
    !****
    ptr => arr(1:n*n:n+1)
  END SUBROUTINE get_diagonal_pointer
END PROGRAM diagonal

但请注意array主程序中是简单连续并具有 TARGET 属性。如果array不只是连续的,那么事情就变得……复杂了。

您可以使用中间等级一指针和指针边界重新映射来完成相同的任务。适用与假设尺寸方法相同的要求。

REAL, POINTER :: tmp(:)
tmp(1:SIZE(array)) => array
ptr => tmp(::SIZE(array,1)+1)

矩阵的上三角形不是“规则的”(您想要指向的元素之间的间距不同),因此无法指向它。

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

如何将指针分配给矩阵的对角线? 的相关文章

  • 为什么 char 指针保存的数据比 C 中分配的内存更多?

    在使用 C 进行动态内存分配时 我在将内存大小分配给 char 指针时感到困惑 虽然我只给出 1 个字节作为限制 char 指针成功地接收尽可能长的输入 假定每个字母对应 1 个字节 我还尝试查找输入前后指针的大小 我怎样才能理解这里发生了
  • 在 C# 中存储矩阵值的快速且有用的方法

    我需要用 C 为 3D 引擎创建一个 4x4 矩阵类 我见过一些其他引擎将矩阵值存储在单个浮点成员变量 字段中 如下所示 float m11 m12 m13 m14 float m21 m22 m23 m24 float m31 m32 m
  • C 中指向常量字符串的指针

    char p string creates pointer to constant string char p string just an array with string 我只是有点困惑为什么它在第一个示例中创建一个指向常量字符串的指
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 为什么 *(int*)0=0 不会导致访问冲突?

    出于教育目的 我正在编写一组导致 C 中运行时异常的方法 以了解所有异常是什么以及导致它们的原因 现在 我正在修改程序 导致AccessViolationException 对我来说 最明显的方法是写入受保护的内存位置 如下所示 Syste
  • Fortran 在 gdb 中打印可分配数组

    我正在向开源科学代码添加一些功能 我使用很多可分配项 但在正确打印它们时遇到一些问题 例如 我声明并分配 然后使用 real dp allocatable psi n phi some other stuff here allocate p
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • Python 将列表追加到列表中

    我正在尝试编写一个通过矩阵的函数 当满足条件时 它会记住该位置 我从一个空列表开始 locations 当函数遍历行时 我使用以下方法附加坐标 locations append x locations append y 函数末尾的列表如下所
  • 修改C中的const char *

    我正在练习面试 我目前遇到的问题是反转 C 中的常量字符串 我知道由于 str2 是 const 所以我可以修改 str2 指向的位置 但不能修改它的值 我下面有一个名为reverse const 的函数 它会将 const char st
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • C++:向 std::sort 提供模板化比较函数

    假设我想让 std sort 根据指针指向的 int 值对指向 int 的指针向量进行排序 忽略那里明显的性能问题 很简单吧 做一个函数 bool sort helper const int a const int b return a l
  • Lua C API:初始化结构体 C 中的变量矩阵

    我正在尝试使用 Lua C API 创建一个用户数据 并在其中关联一个元表 我将在其中收集矩阵 我无法得到的是如何将初始化矩阵的每个分量设置为零 我按照我的描述编译我的 Lua 模块 C 代码here https stackoverflow
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 在网格中查找具有相同值的相邻单元格。想法如何改进这个功能?

    我是 Python 新手 学习了 1 个多月 我尝试创建 Tic Tac Toe 然而 一旦我完成了它 我决定扩展棋盘 从 3x3 到 9x9 具体取决于客户的输入 并通过在棋盘上的任意位置连接 4 个行 列或对角线来获胜 因此 我需要一个
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • C 问题与指针

    我有一个程序问题 这是代码 int main int p q p int 1000 printf d p q int 2000 printf d q printf d p q return 0 但答案如下 1000 2000 250 我无法
  • 如何格式化整数以仅具有所需的大小?

    我一直在尝试以下代码 program hello write i9 10 end program hello 并改变格式字符串 尝试使写入输出的字符串大小恰好满足表示整数所需的大小 但到目前为止我无法管理它 如何在 Fortran 中编写
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 在 Go to 函数中通过引用和值传递

    我对 Go 中通过引用和值传递有点困惑 我已经看到过对类型前面的 的解释 在类型名称前面 表示声明的变量将存储该类型的另一个变量的地址 而不是该类型的值 类型 这对我来说毫无意义 在Java中 如果我将数据库实例传递给函数 我会这样做 da

随机推荐

  • 折叠 git 存储库的历史记录

    我们有一个有着悠久历史的 git 项目 具体来说 在项目早期 项目中有相当多的二进制资源文件 这些文件现在已被删除 因为它们实际上是外部资源 然而 由于之前已提交这些文件 我们的存储库的大小 gt 200MB 当前总签出约为20MB 我们想
  • Prolog 递归计算列表中的数字

    我需要一个程序来计算列表中的所有数字 无论它们嵌套得有多深 我能够在数字不在另一个列表内的情况下对数字进行计数 但通过深度嵌套元素进行递归是行不通的 到目前为止我有这个 count 0 count H Tail N count Tail N
  • 使用 Python 搜索 PDF 中的文本? [复制]

    这个问题在这里已经有答案了 Problem我试图通过搜索文本来确定文档的类型 例如诉状 信件 传票等 最好使用 python 所有 PDF 都是可搜索的 但我还没有找到使用 python 解析它并应用脚本来搜索它的解决方案 不需要先将其转换
  • 调整 nginx worker_process 以获得每分钟 10 万次点击

    我们有一台服务于一个 html 文件的服务器 现在服务器有 2 个 CPU 和 2GB 内存 从 blitz io 来看 我们每分钟获得约 12k 个连接 在 60 秒内有 200 个超时 每秒有 250 个并发连接 worker proc
  • unicodedata.digit 和 unicodedata.numeric 之间有什么区别?

    From 统一码数据 doc unicodedata digit chr default 返回分配给的数字值 字符 chr 作为整数 如果没有定义这样的值 则默认为 返回 或者 如果未给出 则引发 ValueError unicodedat
  • 从Python执行页面上的JS代码

    我的任务是使用 Python 从任何网页获取命名函数的列表 我有一个使用 JavaScript 编写的脚本 它满足我的需要 加载页面后 我可以从 JS 控制台运行脚本 例如 从 GoogleChrome 中的开发工具 我得到了函数名称数组作
  • 上传错误#2038

    每当我使用此脚本进行测试时 它在上传尝试时都会不断失败并给出错误 IO 2038我可以肯定地说的是它甚至永远不会到达 Upload ashx 的后端脚本 这告诉我脚本有问题 现在我正在我的测试机器上使用 localhost 执行此操作 ht
  • 使用 Swing 在窗格中选择文件

    我正在 Swing 中编写一个 GUI 我想在主窗口中创建一个文件选择器 如下图所示 虽然似乎有很多关于如何编写弹出文件选择器的教程 但我没有看到太多关于如何在 swing 中完成这种类型的选择器的信息 也很抱歉 如果之前有人问过这个问题
  • 如何延迟推送通知权限弹出窗口 Swift

    我正在开发一个带有推送通知的应用程序 我想延迟推送通知权限弹出的出现 直到用户第三次进入我的应用程序之后 所以他应该对我的应用程序感兴趣 然后我想征求他的许可 我有办法做到这一点吗 我搜索了很多方法 就像这里 重置应用程序的推送通知设置但我
  • AngularJS 路由有什么意义?

    我正在创建一个网站 我选择在 AJ 中进行 我有两个文件夹 网关 gt 一些从 mysql 数据库检索数据并将数据作为 json 回显的 php 文件 Views gt 部分 html 文件 基本上是每个页面的模板 例如用户 项目等 然后我
  • 将参数括在括号中时,Ruby Kernel.raise 方法会引发错误

    我喜欢用括号括起来的方法参数 这是对 Pascal 的怀念 在清理代码时 如果我发现没有它的方法参数 我会立即将它们括起来 今天 它导致我的工作代码抛出错误 尽管根据文档我的语法看起来没问题 Kernel raise 的文档具有以下格式 O
  • C# 数据连接最佳实践?

    好吧 这是一种固执己见的话题 但根据你的知识 观点和当前的实践 设置以下场景的最佳方法是什么 我正在构建一个广泛的数据输入应用程序 我所说的广泛是指我只完成了基本设置 其中包含整个程序的大约 15 25 并且我有大约 15 个部分设置的表单
  • 将日历与闪亮的散点图链接起来

    如果可能的话 我希望您帮助我将我的日历链接到我想做的一些散点图 我要解释一下 我的想法是 当该人在日历上选择 01 01 2021 选项时 他会生成一个散点图 其中包含每个类别的第一个点 即 D1 DR01 DR02 DR03 和 DR04
  • stackoverflow错误:检查数字是偶数还是奇数,没有%或/运算符[重复]

    这个问题在这里已经有答案了 在没有 或 运算符的情况下检查数字是偶数还是奇数 public class EvenOrOdd public static int CheckEvenOrOdd int num if num gt 2 int n
  • 有人可以非常详细且易于理解地向我解释 SharedPreferences 在 Android 中的工作原理吗?

    我是 Android 开发新手 现在我真的很想学习共享首选项 我用谷歌搜索了很多次 但我认为我还没有完全掌握它 我相信此共享首选项将帮助我在登录屏幕活动中存储用户名和密码 感谢您 我制作了一些关于此的视频作为工作试镜 他们帮助我得到了这份工
  • 带 cookie 的 iPhone NSData/NSUrl

    我正在尝试播放 流式传输网站上托管的 mp3 该网站需要设置 cookie 标头 但我在设置该标头或让容器为我执行此操作时遇到困难 NSURL sampleUrl NSURL URLWithString http domain files
  • R - 使用任何其他列中的值填充列

    我有一个 5 列的数据框 4 列有值 1 列为空 我想用 4 列中任意一列中的任意值填充空列 假设这是我的数据框df Col1 Col2 Col3 Col4 Col5 11 11 2 2 2 23 4 4 15 15 我希望我的结果看起来像
  • 如何在 url asp.net mvc 4 中添加扩展名 .html?

    我有网址 http localhost 1714 Message Index 我想展示 http localhost 1714 Message Index html 我该怎么做 您需要修改 Web config 以将对 HTML 文件的请求
  • YouTube API 返回带有空列表的 nextPageToken

    这个问题与 YouTube API 500 1000 无关有意义的结果问题 我认为 YouTube API nextPageTokens 的工作方式是 一旦没有更多结果可返回 它们将为 null 但是 我看到一开始就返回了结果 但有时即使只
  • 如何将指针分配给矩阵的对角线?

    我有一个矩阵说REAL 8 MATRIX 100 100 我想仅从主对角线或上三角形创建一个指针 怎么做 目的是以干净的 命名 方式轻松访问这些元素 对于主对角线 请小心 您可以执行以下操作 PROGRAM diagonal IMPLICI