matlab索引超出矩阵维度怎么解决 5

%******gradOptimizMethod.m******%clcclearx=[0:0];%设置搜索起始点eps=0.01;%精度g=detaf(x);%设定目标... %******gradOptimizMethod.m******%
clc
clear
x=[0:0];%设置搜索起始点
eps=0.01;%精度
g=detaf(x); %设定目标函数并计算起始点对应的函数梯度
nc=0;%迭代次数
syms alpha;
while norm(g)>eps
s=-g'/norm(g);%设置该点负梯度方向为搜索方向
tt=subs(x)+alpha*subs(s);
ff=fx(tt(1),tt(2));
ff=inline(ff);
[minx,maxx]=forwardBackward(ff,1,0,1);
t=quadraticInterpolation(ff,minx,maxx);%一维搜索最优步长因子
xx+t*s;
g=detaf(x);
f=fx(x(1),x(2));
gradeValue=norm(g);
nc=nc+1;
fprintf('**********第%d次搜索结果为********** *','nc');
x
g
gradeValue
s
t
f
end
% ******deta.m******%
% 求解目标函数的梯度
function [gradf]=detaf(x)
% detaf:▽f
% 目标函数:f;
% 函数梯度:df;
% 设计变量:x;
gradf(1)=2*x(1)-2*x(2)-5;
gradf(1)=6*x(2)-2*x(1)-7;
end
% ******fx.m******%
% 设定目标函数
function f=fx(x1,x2)
f=x1^2+25*x2^2;
f=x1*(x1-2*x2-5)+x2*(3*x2-7);
%目标函数表达式
end
索引超出矩阵维度。

出错 detaf (line 8)
gradf(1)=2*x(1)-2*x(2)-5;

出错 gradOptimizMethod (line 6)
g=detaf(x); %设定目标函数并计算起始点对应的函数梯度
展开
 我来答
电子数码小百科NW
2020-02-16 · TA获得超过6490个赞
知道答主
回答量:15
采纳率:0%
帮助的人:3835
展开全部

1、打开MATLAB编辑器,用其进行代码设计。

2、使用length方便计算出未知矩阵中,行或列最大值,如果需要这种结果,就可以选用,如行数比列的大,就返回行的数目,反之返回列。

3、接着介绍size,实际这一函数用法更灵活,几乎可以获得所需各种结果。这里用一个变量,等于此函数运行结果,结果输出为数组形式,分别储存行、列数。

4、如果用一个,只有一行,有两个元素,分别存放在不同列的数组去等于结果,则每个元素的结果,分别为整型,储存着矩阵的维度值,而且还可获得行及列的具体数值。

5、如果将size内容,添加2后,则运行图示程序,结果全为3,即只输出列数,对应矩阵另一个维度。

滕长乌雅易蓉
2019-09-19 · TA获得超过4064个赞
知道大有可为答主
回答量:3134
采纳率:29%
帮助的人:442万
展开全部
求解符号函数矩阵的积分1当f为矩阵时,积分过程将对元素逐个进行。若定义了区间和变量,则区间和变量是对整个矩阵定义的。下面我们先生成符号函数矩阵,以供积分函数调用。2求符号函数矩阵的不定积分,积分代码及结果。3换种积分结果的显示方式,以更易于理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nn8ov6
2019-09-16 · TA获得超过7584个赞
知道大有可为答主
回答量:5778
采纳率:61%
帮助的人:667万
展开全部
为什么matlab老出现索引超出矩阵维度?可能是数据文件有问题,建议你这样来排查,把第41行的空格去掉,一直去到第40行的尾部,即光标符处于40行的尾部,保存。然后再运行你的代码。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式