matlab 数组范围内,MATLAB索引超出数组范围
以下是程序:
clear;
clc;
E=20
L=3.3e-3
C=1e-3
R=19;
T=4e-4;
a = 1/(2*R*C);
w = sqrt(1/L/C-1/4/R^2/C^2);
A2 = [0,-1/L;1/C,-1/R*C];
A1 = A2;
A3=[0,0;0,-1/C*R];
B1=[1/L;0];
B2=[0;0];
B3=B2;
I=[1,0;0,1];
for m=1:5001
Iref=0.1+0.01*(m-1);
i(1)=0;
u(1)=0;
for n=1:5000
X = [ i( n ); u( n ) ];
p1=(exp(-a*T)/w*((a*sin(w*T))+(w*cos(w*T))));
q1=exp(-a*T)/w*sin(w*T);
Ib1=(Iref/p1)+(q1*u(n)/L/p1)-(((1-p1)/R)+(q1/L))*E/q1;
if i(n)<=Ib1
X(:,n+1)=exp(A1*T)*X+(exp(A1*T)-I)*A1^-1*B1*E;
else
syms t1;
p3=exp(A1*t1)*X+(exp(A1*t1)-I)*A1^-1*B1*E;
q3=p3(1,:);
t1=solve(Iref==q3,t1);
t1=double(t1);
p2=(exp(-a*t1)/w*(a*sin(w*t1)+w*cos(w*t1)));
q2=exp(-a*t1)/w*sin(w*t1);
Ib2 = Iref/p2+q2*u(n)/L/p2-((1-p2)/R+q2/L)*E/p2;
if i(n) < Ib2
t2=T-t1;
X(:,n+1)=exp(A2*t2)*exp(A1*t1)*X+exp(A2*t2).*(exp(A1*t1)-I)*(A1^-1)*B1*E;
else
syms t2 ut1;
S=[Iref;ut1];
p4=exp(A2*t2)*S;
q4=p4(1,:);
t2=solve(0==q4,t2);
t2=double(t2);
t3=T-t1-t2;
X(:,n+1)=exp(A3*t3)*exp(A2*t2)*exp(A1*t1)*X+exp(A3*t3)*exp(A2*t2)*(exp(A1*t1)-I)*A1^-1*B1*E;
end
end
end
i1(m,:) = i(end-150:end);
% uo(m,:) = u(end-80:end);
H= plot(Iref*ones(1,length(i1(m,:))),i1(m,:));
% set(H,'linestyle','none','marker','.','markersize',3);
hold on
drawnow
end
程序是从X(:,n+1)=exp(A3*t3)*exp(A2*t2)*exp(A1*t1)*X+exp(A3*t3)*exp(A2*t2)*(exp(A1*t1)-I)*A1^-1*B1*E;循环一次后开始第二次循环时在 X = [ i( n ); u( n ) ]; 发生错误,我认为是初始化不能放在n循环里,但是X又跟n循环有关,又不能直接放在外面,恳请各位大佬们教教新手,如何把初始化那句 X = [ i( n ); u( n ) ]; 放在n循环外面?或者让这句话只在n循环中执行一次?谢谢各位!!!!!!
matlab 数组范围内,MATLAB索引超出数组范围相关推荐
- 位置2处的索引超过边界总数matlab,位置 2 处的索引超出数组边界(不能超出 2)。...
想使用fmincon函数优化求微分方程的参数,写完程序之后提示这个错误,大佬们能不能帮我看看哪里错了? 也帮忙看一下我写的程序对不对,有没有有需要改正的地方. k0=[0.023 0.000613 0 ...
- Matlab中出现“位置1处的索引超出数组边界(不能超过1)”
我是一个matlab小白,前几天刚准备学习机器学习的相关知识,但是下面的代码一直提示我"位置1处的索引超出数组边界(不能超过1)". 好像出错在71行的"ans(j,:) ...
- matlab出现索引超出数组元素的数目(0)怎么解决
Matlab 出现索引超出数组元素的数目 (0) 通常表示你试图访问一个空数组或者超出数组索引的范围.以下是一些可能的解决方案: 检查你的代码,确保没有在程序中使用空数组. 检查数组的索引是否正确.例 ...
- MATLAB位置1无法索引,位置 1 的索引超出数组范围(不能超过 1)
clear clc; N=512; L=512; f1=300;fs=15000; T=1/fs; ws=2*pi*fs; t=(0:1:N-1)*T; x=sin(2*pi*f1*t); y=fft ...
- 模型预测控制 索引超出数组元素的数目(0)。_C++基础总结(二):C++基本数据类型及流控制语句详解...
上次分享了hello world, 今天小编分享 C++基本数据类型及流控制语句 ,建议大家收藏慢慢学习,同时希望对大家的C++学习有所帮助. C++ 数组 C++ 支持数组数据结构,它可以存储一个固 ...
- 运行差分灰狼时出现 关于“索引超出数组元素的数目(0)和矩阵维度问题以及图例的问题”的解决办法
问题一:索引超出数组元素的数目(0) 看截图,上面注释掉的libsvmpredict是出错的, 下面一句是修改后的. [~,~,fitness]=libsvmpredict(output_test,i ...
- php 数组大于1,位置 1 的索引超出数组范围(不能超过 1)。
%清空运行环境 clc clear %速度更新参数 c1 = 1.49445; c2 = 1.49445; maxgen = 300; %最大迭代次数 sizepop = 20; %种群规模数 %个体 ...
- C# txt文本文件导入到dataGridView1 索引超出数组限定
C# txt文本文件导入到dataGridView1 索引超出数组限定 private void button6_Click(object sender, EventArgs e){using (Op ...
- Matlab 常见错误(1)——提示“数组索引必须为正整数或逻辑值”或者“索引超出数组元素的数目”
我自己出现这个错误的代码,是在想对契比雪夫方向图进行采样时.代码如下: S=20; dS=0:2000/(2*S):2000; theta1=0:180/(2*S):180; for k=1:41Y( ...
- 位置2的索引超出数组范围不能超过10_golang学习笔记--切片slice 与数组 arr
因为我是写php的,刚开始写go的时候老是被数组坑.因为在go中的数组是固定长度,所以会存在越界的时候.而在go中也很少直接使用数组.更多的时候会使用slice(切片). 数组 数组是一个由固定长度的 ...
最新文章
- AI一分钟 | 程维成立滴滴股权投资公司;特斯拉董事会决定放弃私有化
- 撩课-Java面试宝典-第八篇
- C#调用DLL文件时参数对应表
- 关于在smarty中实现省市区三级联动
- 手动建立makefile简单实例解析
- Java基本数据类型的转换
- 寻找不到iframe元素
- Samba安装详细步骤
- ins与apache的区别_既然nginx比apache快,为什么nginx没有取代apache?
- 蓝桥杯.历届试题: 核桃数量
- 系统性谈谈软件可靠性——第5讲:软件测试及常见测试用例设计方法
- rp软件app流程图_AxureRP介绍
- QT常用控件——QListView控件
- 浏览器内核控制Meta标签说明文档(360浏览器默认极速模式)
- 如何将电脑文字复制到模拟器_如何将电脑中的文字复制到手机上?
- 永恒之蓝攻击处置方法
- DSP之Controlsuit和C2000Ware下载安装
- 振弦式传感器数据采集到水库大坝监测云平台进行监控和报警
- 自制简单U盘引导程序
- python URL解析转换成字典
热门文章
- POJ NOI0105-40 数1的个数
- UVA11039 Building designing【排序】
- HDU1042 n!【大数+万进制】
- ceil() 与 floor() 与 round()
- Python Tricks(十五)—— repeat(字符串重复)
- 黄金分割法与单峰函数求极值
- Python 进阶——重访 list (二)
- vmware 网络连接方式的说明
- python写webservice接口_Python开发WebService系列教程之REST,web.py,eurasia,Django
- python自学入门-初学 Python 者自学 Anaconda 的正确姿势是什么?