matlab 矩阵引用某个元素出错

clear
dt=0.1;t=-5:dt:5;
f1=(t>=-2)-(t>=2);f2=(4-t).*((t>=2)-(t>=4));
ts=min(t)+min(t);
%卷积,积分值存入数组s
s=zeros(1,length(t)+1);
for x=1:length(t)
for tao=ts:dt:t(x)
taoN=(tao-ts)/dt+1; t_taoN=(t-tao-ts)/dt+1;
s(x+1)=s(x)+f1(taoN)*f2(t_taoN);
end
end

s(x+1)=s(x)+f1(taoN)*f2(t_taoN);就是这一行出错了,该怎么改
请不要告诉我可以用里面的conv和int函数卷积,我只是想用一下循环,哪位大侠能帮忙,成功后肯定追加分数
f1不是常数,是1×101的数组

错误:
s(x+1)=s(x)+f1(taoN)*f2(t_taoN);

式子中taoN,t_taoN可能为负数或零,f1是数组,数组被引用时,下

标不能为零或负数。

改正方法:把引用数组中用到的下标不正确的地方改过来。
温馨提示:内容为网友见解,仅供参考
无其他回答

matlab 矩阵引用某个元素出错
错误:s(x+1)=s(x)+f1(taoN)*f2(t_taoN);式子中taoN,t_taoN可能为负数或零,f1是数组,数组被引用时,下 标不能为零或负数。改正方法:把引用数组中用到的下标不正确的地方改过来。

matlab中用for循环修改矩阵某元素值,为什么有错误?
应该是这样的,比如你要改第1行第5列的数为1,那么改为:a(5)=1;如果你想把a的前5个都改为1,那么运行 a(1:5)=1;

matlab出现索引超出矩阵维度有哪些原因?
1、出现这种情况的可能原因有以下几个:数据输入错误:SVM训练需要准备好一定数量的训练样本,而且必须满足一定的数据格式要求。如果数据输入错误,可能会导致索引超出矩阵维度的错误。2、首先创建一个数组或矩阵,如在MATLAB命令窗口中输入代码,如下图所示。数组创建好后,就可以进行数组或矩阵索引了,索引数...

matlab错误使用*内部矩阵维度必须一致.
当在MATLAB中遇到“错误使用*内部矩阵维度必须一致”的警告时,问题通常源于运算对象的维度不匹配。例如,如果变量y有66个数据点,而变量t和b分别有71个数据,这种不一致会导致错误。解决这一问题的方法是将t和b调整为与y相同长度,如t设为t=[1:66],b设为b=[ones(1,66)]。此外,注意在MATLAB中...

matlab代码出现错误使用 \/ 矩阵维度必须一致;数组索引必须为正整数或...
在使用MATLAB进行编程时,可能会遇到一些常见的错误。其中两个典型的错误是矩阵维度必须一致及数组索引问题。在进行除法运算时,若不正确使用运算符,MATLAB会报错。例如,当试图进行矩阵之间的除法运算时,使用普通除号(\/)而非对应矩阵运算符(.\/),就会导致错误提示:“矩阵维度必须一致”。正确的做法是...

matlab画图,"错误使用\/,矩阵维度必须一致"
建议学习一下matlab中数组乘法与矩阵乘法的区别,你这里需要的是t和l0的元素对应计算,即矩阵乘法,那么需要在乘除运算符之前加上点号(.\/ 或 .*),所以改正如下:t = 9:1:15;l0 = 3 .\/ (tan(asin(0.4620 + 0.7712 * 0.6879 * cos(pi \/ 12 * (t - 12.24)));plot(t,l0)...

matlab中错误使用*内部矩阵维度必须一致。
1、出现《matlab错误使用 * 内部矩阵维度必须一致.》这个错误警告的原因是,y与t、b的数据个数不相等(不一致)(即,y为66个数据,而t、b为71个数据)将t、b改为t=[1:66]' ,b=[ones(1,66)];即可。2、z表达式不应出现点运算符,这里是矩阵运算,而不是向量运算。将z表达式中的点...

matlab中,用find找某个元素,为什么有些能找到,有些明明有却找不到...
7.55应该不是精确值,只显示出前几位,但它可能是7.5500000034类似于这样。那判断用==就不对了。可以这样 phlevel=find(abs(Total(:,1)-7.55)<1e-5)里面的1e-5就是精度,你可以根据需要取更大或者更小,比如0.01, 1e-15, eps都可以,看需要多大精度。

在matlab中索引超出数组范围,怎么解决啊?
5、首先创建一个数组或矩阵,如在MATLAB命令窗口中输入代码,如下图所示。数组创建好后,就可以进行数组或矩阵索引了,索引数组或矩阵时可以精确索引某行某列的元素,如我们在MATLAB命令窗口中输入代码。6、X=randi(imax,n)randi的第一个参数值设置最大值,而不是多少行。比如最大值为100,要120000...

matlab矩阵相乘问题,到底哪里出错了?如下图,左边错误提示,右边源代码...
出现这个错误的原因是,读入的boy.jpg是一个真彩图像,所以对应的i是一个三维数组,而矩阵乘法(*)只能对两个二维数组进行(其中一个可以是标量)。看楼主代码的意图,应该是想要显示图片中间一个方形区域的内容,而把其余部分设置为黑色。这可以通过以下两种方式来做。1、按照真彩图像显示,此时b也应该...

相似回答
大家正在搜