hy(p,q)是一个函数,其中p,q是未知数。
我想建立一个用该函数填满的矩阵。
e.g.两行两列
[hy(1,1) hy(1,2);
hy(2,1) hy(2,2)]
但现在我需要1000*1000或者10000*10000的矩阵,
[hy(1,1) hy(1,2) ... hy(1,10000);
hy(2,1) hy(2,2) ... hy(2,10000);
................................................
hy(10000,1) ... hy(10000,10000)]
手动输入要输到明年了。请问诸位大神有什么办法吗?
挺急的,教授在后面磨刀了已经。
Matlab 大型矩阵的输入
答案:3 悬赏:70
解决时间 2021-03-11 17:06
- 提问者网友:相思瘸子
- 2021-03-11 11:29
最佳答案
- 二级知识专家网友:陪伴是最长情的告白
- 2021-03-11 12:15
原发布者:在楼上看你呢
MATLAB中的矩阵的输入§1直接输入一、直接在工作窗中输入:A=[2,4,6,8;1357;0000;1,0,1,0]其意义是定义了矩阵二、如果矩阵中的元素是等步长的,可以用下面的方法:A=[1:0.2:2;1:6;2:2:12]A=[1:5]'“'”号在这里表示为转置,而1:5中间少了一个循环步长,此时将步长自动取为1。§2增删改设已经定义A=[12345;108642];B=[01;10];C=[12;24]即已定义A=B=C=1234501121086421024则命令A=[[A(:,1:4);[C,B]],[0204]']将A定义成:A=而A(:,3)=[]:将删除A的第三列,得12340A=124010864210842120101210241042404§3命令生成使用MATLAB命令生成矩阵一般使用下面的命令1、命令linspace,它有两个格式:a1=linspace(1,100)%生成一个从1到100的有100个元素的向量a2=linspace(0,1)%仍然是有100个元素但是是从0到1的向量a3=linspace(0,-1)%请与上一个向量进行比较上面是第一种格式linspace(a,b),它是将a到b等分成100份形成的向量。第二种格式linspace(a,b,n)中的n为一
MATLAB中的矩阵的输入§1直接输入一、直接在工作窗中输入:A=[2,4,6,8;1357;0000;1,0,1,0]其意义是定义了矩阵二、如果矩阵中的元素是等步长的,可以用下面的方法:A=[1:0.2:2;1:6;2:2:12]A=[1:5]'“'”号在这里表示为转置,而1:5中间少了一个循环步长,此时将步长自动取为1。§2增删改设已经定义A=[12345;108642];B=[01;10];C=[12;24]即已定义A=B=C=1234501121086421024则命令A=[[A(:,1:4);[C,B]],[0204]']将A定义成:A=而A(:,3)=[]:将删除A的第三列,得12340A=124010864210842120101210241042404§3命令生成使用MATLAB命令生成矩阵一般使用下面的命令1、命令linspace,它有两个格式:a1=linspace(1,100)%生成一个从1到100的有100个元素的向量a2=linspace(0,1)%仍然是有100个元素但是是从0到1的向量a3=linspace(0,-1)%请与上一个向量进行比较上面是第一种格式linspace(a,b),它是将a到b等分成100份形成的向量。第二种格式linspace(a,b,n)中的n为一
全部回答
- 1楼网友:一起来看看吧
- 2021-03-11 15:15
如果hy是一个二原函数,返回的是单个数值
[hy(1,1) hy(1,2) ... hy(1,10000);
hy(2,1) hy(2,2) ... hy(2,10000);
................................................
hy(10000,1) ... hy(10000,10000)]
这样的矩阵,可以用
[p q]=ndgrid(1:1000,1:1000);
HY=arrayfun(@hy,p,q);
这样的办法生成
但是你要对角线都减去b
理论上可以用 A=HY-b*eye(1000); 来实现
但是构造1000x1000的sym矩阵,是十分耗资源
后续的求行列式子更是运算复杂
计算机有可能内存不够或者计算需要的时间超长
建议直接定义一个关于b的函数f=@(b) det(A-b*eye(N))
然后利用这个函数画图和求最解
f=@(x,y)x+y;
N=1000;
[p q]=ndgrid(1:N,1:N);
A=arrayfun(f,p,q);
f=@(b) det(A-b*eye(N));
ezplot(f,[-1 0]);
Emin=fzero(f,[-0.7,-0.5]);
这样会快很多,但也需要一点时间计算
- 2楼网友:孤伤未赏
- 2021-03-11 13:36
新手一枚,我今天也在学如何把矩阵数据输进去。
我的做法比较简单,
直接点到下图中“workspace”的地方,在里面添加一个变量,
再双击这个变量,把矩阵数据黏贴进去就ok了。
(不过要注意的是,矩阵里是0的地方,要输入0,不能是空白的。)
我是这么做的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯