matlab给图像加坐标系 矩阵索引问题

matlab索引超出矩阵维度,怎么解决?_百度知道
matlab索引超出矩阵维度,怎么解决?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
leeming6666
来自科学教育类芝麻团
leeming6666
采纳数:618
获赞数:2037
参与团队:
把while(i&=12&&j&=77)改成:while(i&12&&j&=77)
但是题目所给的范围,能取到12啊,这怎么办
全都改成for语句
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。只需一步,快速开始
扫一扫,访问微社区
请完成以下验证码
查看: 889|回复: 0|关注: 0
MATLAB 索引超出矩阵维度
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
MATLAB 索引超出矩阵维度figure(1);
fplot('variable.*sin(pi*10*variable)+2.0',[-1,2]); %函数曲线
%定义遗传算法参数
NIND=40; %个体数目
MAXGEN=25; %最大遗传代数
PRECI=20; %变量的二进制位数
GGAP=0.9; %代沟
trace=zeros(2,MAXGEN); %最优结果的初始值
FieldD=[20;-1;2;1;0;1;1]; %区域描述器
Chrom=crtbp(NIND,PRECI); %初始种群,矩阵
gen=0; %代计数器
variable=bs2rv(Chrom,FieldD); %计算初始种群的十进制串转换
ObjV=variable.*sin(10*pi*variable)+2.0; %计算目标函数值
while gen&MAXGEN,
FitnV=ranking(-ObjV); %分配适应度值
SelCh=select('sus',Chrom,FitnV,GGAP); %选择
SelCh=recombin('xovsp',SelCh,0.7); %重组
SelCh=mut(SelCh); %变异
variable=bs2rv(SelCh,FieldD); %子代个体的十进制串转换
ObjVSel=variable.*sin(10*pi*variable)+2.0; %计算子代的目标函数值
[Chrom, ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代的新种群
gen=gen+1;
%输出最优解及其序号,并在目标函数图像中标出,Y为最优解,I为种群的序号
[Y,I]=max(ObjV);
plot(variable(I),Y,'yx');
disp([Y,I]);
trace(1,gen)=max(ObjV); %遗传算法跟踪
trace(2,gen)=sum(ObjV)/length(ObjV);
variable=bs2rv(Chrom,FieldD); %最优个体的十进制串转换
plot(variable',ObjV','b*');
figure(2);
plot(trace(1,:)');
plot(trace(2,:)','-.');
legend('解的变化','种群均值的变化');
索引超出矩阵维度。
出错 GA7_1 (line 25)
plot(variable(I),Y,'yx');
站长推荐 /3
用 MATLAB/Simulink开发自动驾驶功能的实例研究
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区\t\tmatlab常见的程序出错问题整理【转载】
Matlab:解决Matlab经常遇到的一些问题集合如Undefined function or variable &B&等
C/C++语言常见错误一览表~~~总结的相当详细
没有更多推荐了,MATLAB中矩阵的逻辑索引方法
Matlab的计算是以矩阵为单元,有着强大的矩阵处理功能,使用时应该多用矩阵或向量运算,把循环语句转变为向量运算会省很多时间,程序也更简洁易读。
MATLAB中对矩阵元素的索引,包括常用的下标法和巧妙的逻辑索引,逻辑索引是用逻辑0或1去判断对应位置的元素是否被选择,所以矩阵和逻辑阵维数必须一致;是不是可能有点不明白,贴个例子你就懂啦:
&&A=[-1 1;3 -2]
%得到逻辑矩阵
&& A(A & 0)
%逻辑索引,逻辑1对应的元素被选中,按列选择
%当然,我知道你想得到的是酱紫的
%这个可以这样得到:
&&A.*(A & 0)
%此方法就是矩阵运算的好处,可以用来取满足条件的数,不必用循环,注意是点乘
另外,如果你要把矩阵中满足一定条件的数赋新值
比方说,一个名叫array数组里面,你要将里面大于1的都变成0,就不必用到循环:
array(array&1)=0;
把大于1小于3的变成0。
array(array&1 & array&3)=0;
当然,还可以使用find,这个也很好用。
但是,当你要把矩阵中满足一定条件的数做运算时,
比如,把array数组里面大于50的数减去50,其他数不变,如果用上面的等式就不太行啦:
&&array=[51 34;57 23;45 89]
&&array(array&50)-50
39这显然不是我们想要的结果,但是怎么会没有解决的办法呢,MATLAB这么强大,看下面
&&array(array&50)=array(array&50)-50
39这个问题在我毕设的时候也困扰了我很久,如果用循环的话,未免low了点,这个方法就很实用。
这是小生第一次写博客,不足之处望批评指正
正式开启我的博客之路啦!
MATLAB中的逻辑索引与数组索引
MATLAB中的矩阵索引
文件的逻辑结构总结
MATLAB执行max()函数出错:下标索引必须为正整数类型或逻辑类型
Matlab 矩阵索引
MATLAB学习笔记之-----数组、矩阵、向量索引和逻辑索引
多维索引(数值索引、逻辑索引) 之 numpy与R语言比较
没有更多推荐了,求MATLAB大神帮我看看这段代码哪里错了 索引超出矩阵维度_百度知道
求MATLAB大神帮我看看这段代码哪里错了 索引超出矩阵维度
Y=dlmread(&#039;Yale_32x32\StTestFile1.txt&#039;);size(Y)a=Y(12,1:end-1);Y=reshape(a,32,32);A=dlmread(&#039;Yale_32x32\StTrainFile1.txt&#039;);size(A)b=A(12,1:end-1);A=reshape(b,32,32);c=0;f...
Y=dlmread(&#39;Yale_32x32&#92;StTestFile1.txt&#39;);size(Y)a=Y(12,1:end-1);Y=reshape(a,32,32);A=dlmread(&#39;Yale_32x32&#92;StTrainFile1.txt&#39;);size(A)b=A(12,1:end-1);A=reshape(b,32,32);c=0;for i=1:30Yi=Y(i,1:4096);D=;t=0;for j=1:135Zj=A(j,1:4096);yj=Zj&#39;/(Zj*Zj&#39;)*Zj*Yi&#39;;dj=norm(yj-Yi&#39;);if dj&DD=t=j;endendif A(t,4097)-Y(i,4097)==0c=c+1zq=iendend索引超出矩阵维度。急求!!!!!!!!!!
&#xe6b9;答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
matlab最大的好处就是不用事先定义变量看你的意思是要按列存储数据,只要每一列的数据个数是不变的,就可以直接使用,直接使用的变量默认为矩阵,只要你存储了第一列数据,其行数就确定了,但列数是可变的,不会报错,放心使用,但前提是你的行数一旦确定就不能超过第一次使用的行数,否则会报错,需要另行编制程序
什么??。。。
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 matlab给图像加坐标系 的文章

 

随机推荐