Fortran Coder

查看: 28351|回复: 11
打印 上一主题 下一主题

[求助] 数组赋值问题

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
29 元
贡献
17 点
跳转到指定楼层
楼主
发表于 2020-8-27 11:42:46 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 不学无墅! 于 2020-8-28 09:11 编辑

有一个三维数组A(20,27,700),还有一个三维数组B(20,27,100),想要实现,在循环中,先将A(20,27,700)的第一层赋给B(20,27,100)的每一层,再将A(20,27,700)的第二层赋给B(20,27,100)的每一层,依次类推,直到将A(20,27,700)的第700层赋给B(20,27,100)的每一层
[Fortran] 纯文本查看 复制代码
Do i = 1,700
      Do j = 1,100
            B(:,:,j) = A(:,:,i)
      end Do
end Do


以上是我的代码,报错error #6366: The shapes of the array expressions do not conform.

求各位前辈指教帮助!
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

6

帖子

2

主题

0

精华

入门

F 币
29 元
贡献
17 点
沙发
 楼主| 发表于 2020-8-28 09:13:11 | 显示全部楼层
原问题 对A的第二维描述错误了  前两维都是相同的 均为 20x27   

6

帖子

2

主题

0

精华

入门

F 币
29 元
贡献
17 点
板凳
 楼主| 发表于 2020-8-28 09:18:09 | 显示全部楼层
青衣巷 发表于 2020-8-27 14:17
听得很模糊,你是希望 B = A(:,:,:100) 吧?

我是希望A里的每一层依次赋给 B的每100层,具体来说就是先将B(:,:,1:100)全部等于A(:,:,1)
再将B(:,:,1:100)=A(:,:,2)
...........
最后B(;,;,1:100)=A(:,:,100)

6

帖子

2

主题

0

精华

入门

F 币
29 元
贡献
17 点
地板
 楼主| 发表于 2020-8-28 09:19:17 | 显示全部楼层
风平老涡 发表于 2020-8-27 21:37
数组间赋值要求数组是必须conformed.
1 Do i = 1,700
2           Do j = 1,100

不好意思 原问题描述数组大小的时候 写错了 A B的前两维是相同的

6

帖子

2

主题

0

精华

入门

F 币
29 元
贡献
17 点
5#
 楼主| 发表于 2020-8-28 09:23:35 | 显示全部楼层
necrohan 发表于 2020-8-27 17:00
Do i = 1,7
    B = A(:,:,(i-1)*100+1:i*100)
end Do

谢谢您  但是 不是这个意思
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-15 22:01

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表