跪求:用matlab编写Hilbert矩阵啊!

来源:百度知道 编辑:UC知道 时间:2024/07/08 02:16:17
成一个100*10000的Hilbert长方矩阵,其中矩阵中每个元素的值如下: h{i,j} = 1/(i+j-1),也就是说这个程序就是创建一个100*10000的矩阵 H ,其元素的值由其位置决定。H(i,j)= 1/(i+j-1)。
但是要求效率要高!最好能在 1s 钟内运行完。
程序运行的计时用 tic 和 toc 指令。
谢谢了蛤!

%Hilbert
tic
[x,y]=meshgrid(1:100,1:10000);
z=x+y;
H=1./(z-1);
toc

Elapsed time is 0.125000 seconds.

tanarri - 大魔导师 十三级 回答的十分经典了,快给人家分吧。

经验证,十分高效:

tic
[x,y]=meshgrid(1:5,1:10)
z=x+y
format rat
H=1./(z-1)
toc

结果:
H =

1 1/2 1/3 1/4 1/5
1/2 1/3 1/4 1/5 1/6
1/3 1/4 1/5 1/6 1/7
1/4 1/5 1/6 1/7 1/8
1/5 1/6 1/7 1/8 1/9
1/6 1/7 1/8 1/9 1/10
1/7 1/8 1/9 1/10 1/11
1/8 1/9 1/10 1/11 1/12
1/9