回 帖 发 新 帖 刷新版面

主题:如何实现行列向量定义与相互转换

fotran中如定义一个数组integer M(5),这个M应该是一个行向量吧,如果要定义一个5*1的列向量应当如何表示,还有就是fotran中有没有行向量与列向量相互转换的内部命令,记得好像在matlab中的transpose就可以实现,但查了下fotran中的transpose好像仅针对二维数组的。

回复列表 (共6个回复)

沙发

如果定义一维数组, 如你定义的变量M, 你可以看成是行向量或者是列向量. 关键是调用函数的时候看清楚函数的要求.
如果不习惯, 可以直接定义向量为5*1或者1*5的矩阵.

板凳

[quote]如果定义一维数组, 如你定义的变量M, 你可以看成是行向量或者是列向量. 关键是调用函数的时候看清楚函数的要求.
如果不习惯, 可以直接定义向量为5*1或者1*5的矩阵.[/quote]
若把A定义为二维数组肯定好理解,但很多资料都是写成一维的,读起来很费劲。再请教一下,若我想进行矢量与矩阵运算,如:
dimension(5):: A
dimension(5,5) ::B
在进行A(行)*B和B*A(列)时应该如何编写程序?

3 楼

transpose

4 楼

内部函数matmul有重载各种情形的. 你定义为一维数组也能计算, 详细最好先阅读编译器的帮助(一个比较简单获知函数信息的方法).
阅读数学资料是死的, 要变成编程代码就看你怎么活用.

5 楼

[quote]内部函数matmul有重载各种情形的. 你定义为一维数组也能计算, 详细最好先阅读编译器的帮助(一个比较简单获知函数信息的方法).
阅读数学资料是死的, 要变成编程代码就看你怎么活用.[/quote]
多谢,matmul函数我也查过了,只是感觉还是有些乱,不过自己找两个例子试了试,大概能找到些运算的规则了,只是觉得一维数据用起来还是有些别扭,少一个类似于二维数组中transpose的命令。

6 楼

[quote]transpose[/quote]
transpose仅针对二维数组。

我来回复

您尚未登录,请登录后再回复。点此登录或注册