其实我不知道该如何描述我遇到的状况,结果下了这样一个怪标题
我的状况是这样的
有一个双变量的函数w(u,v),要对u和v在某个区间内做运算
举个例
u从5.6开始每隔0.2一个点直到6.2
v从18开始每隔1一个点直到20
作法如下
先建立一个双元素的矩阵 (我不知道这是不是称为双元素矩阵,临时取名
(in)
mat = {i, j};
mat2 = Table[mat, {i, 5.6, 6.2, 0.2}, {j, 18, 20, 1}]
mat2 // MatrixForm
(out)
{{{5.6, 18}, {5.6, 19}, {5.6, 20}}, {{5.8, 18}, {5.8, 19}, {5.8,
20}}, {{6., 18}, {6., 19}, {6., 20}}, {{6.2, 18}, {6.2, 19}, {6.2,
20}}}
MatrixForm出来就是一个4 x 3的双元素矩阵
===========================
再做运算
(in)
For[n = 1, n < 4, n++, (
For[m = 1, m < 5, m++, (
mat3 = mat2[[m, n]];
w = Function[{u, v}, u^2 + v^4][mat3[[1]], mat3[[2]]];
Print[w]
)];
)];
(out)
105007.
105010.
105012.
105014.
130352.
130355.
130357.
130359.
160031.
160034.
160036.
160038.
结果就是一长串,我想把算出来的结果也变成一开始那种4 x 3的矩阵,不过怎么
都弄不出来,后来有在板上找到类似的讨论串,有人用Table或Map的方式做,但是当时
文章里都是处理一维的问题,我试了半天都没有办法把它变成4 x 3的矩阵
麻烦各位版友解惑了
感激不尽 > <
作者:
tml (流刑人形)
2013-04-09 08:45:00Apply[#1^2+#2^4,mat2,{2}]Apply[#1^2+#2^4&,mat2,{2}]少写一个&
作者:
LPH66 (-6.2598534e+18f)
2013-04-09 08:52:00Table 也可以做二维的啊 以你的例子就是Table[mat2[[n,m,1]]^2+mat2[[n,m,2]]^4,{n,1,3},{m,1,4}]其实你一开始的那个 Table 写法就是这样的结构所以也可以干脆就一开始直接这样建起来:Table[u^2+v^4,{u,5.6,6.2,0.2},{v,18,20,1}]