matlab 怎么修改下面的程序 a=[1 1 2;1 2 3]; for i=1:2 b(:,i)=find(a==i); end

如题所述

第1个回答  2011-11-08
你i=1时find(a==i) 有1 2 3,你i=2时find(a==i) 有4 5 两者不能同时放在b中,数组维数不同;如果你一定要放在一个变量里面,可以这样
b=zeros(6);
for i=1:2
t=find(a==i)
if length(t)>0
for j=1:length(t)
b(j,i)=t(j)
end
end
end

结果:
b =

1 4 0 0 0 0
2 5 0 0 0 0
3 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0追问

这个问题我解决了,谢谢了。

本回答被提问者采纳
第2个回答  2011-11-08
请问你的编程意图是什么啊?b(:,i)=find(a==i); find找到的是满足条件的坐标值啊,你i=1的时候生成了三个坐标值1 2 3,b的第一列就有三个值1 2 3,然后i=2的时候只有两个坐标值啊!在运行第一次循环的时候你就默认让b是三行了,你现在要把两个值赋给一个三维的列向量,你说错不错!
你把那个3改成2试试,保证对!
第3个回答  2011-11-08
你想实现什么功能呢?
第4个回答  2011-11-08
你想要的是什么结果?

...a=[1 1 2;1 2 3]; for i=1:2 b(:,i)=find(a==i); end
你i=1时find(a==i) 有1 2 3,你i=2时find(a==i) 有4 5 两者不能同时放在b中,数组维数不同;如果你一定要放在一个变量里面,可以这样 b=zeros(6);for i=1:2 t=find(a==i)if length(t)>0 for j=1:length(t)b(j,i)=t(j)end end end 结果:b = 1 4 0 ...

...1,A_2,A_3,我修改怎么写使 for i=1:1:2 A_i end 循环结果为 A_1...
for i=1:1:2 等价于1,2,不会出现3

matlab如何用循环语句输入A1=1;A2=2;A3=3
for n=1:3 eval(['A' num2str(n) '=' num2str(n)]);end

matlab中运行程序出现索引超出矩阵维度,怎么修改.
首先打开电脑上的“matlab”软件,主界面如下图所示,在命令行输入代码即可运行。使用A=rand(2,3,3)创建一个随机三维矩阵,ndims(A)函数返回矩阵A的维度,此处输出结果为3。打开MATLAB编辑器,用其进行代码设计。使用length方便计算出未知矩阵中,行或列最大值,如果需要这种结果,就可以选用,如行数...

matlab里面采样程序 for i=1:l2 y2(i,:)=y(round(i*B),:); %重新采样...
SP = [SP SD(I)的(1 DELTAN)]; \/>结束 插曲(4,1,3);情节(SP);轴([1 N分钟(s)最大()]);%的低通滤波器恢复原始信号 WM = fs\/f0 水平5\/Wm B = low_filter(WM,水平);延迟=级\/ 2;[SP SP = 0(1,延迟)];所以过滤器(B,1,SP);=(延迟1:延迟+ N)\/...

在MATLAB中怎样编程实现矩阵A=[1 1\/2 1\/3 1\/4;1\/2 1\/3 1\/4 1\/5]的...
在.m文件中时也可使用fprintf函数,详情可在命令行中输入help fprintf查看,输出格式控制与C语言相同。

matlab绘图,这个程序怎么修改才能运行
1、首先,由于方程f1中含有log(w)项,w不可取0。这里w在0.01-100之间按对数分度取值。2、很容易可以画出给定w情况下的f1-a曲线,以下是w分别取0.1、1、100时的曲线:由图可见,求f1=0可以得到多个a值,而且w<1时a<0,w>1时a>0(大致的规律,不一定准确)。这样就涉及到a取哪个解的问题...

MATLAB里,想将矩阵的每一个元素复制
function fuzi()B=[];A=[1 2;3 4];[m,n]=size(A);for i=1:m c=[];for j=1:n b=A(i,j)*ones(2,2);c=[c b];end B=[B;c];end B end

matlab程序if语句用法
MATLAB IF 条件语句用法以及实例如下:1、if语句是一种选择判断语句,可以和for语句结合使用,也可以单独使用,这里创建了3个变量,作出了一个简单判断如果a小于b,b等于a,需要注意的是if语句后面要有end语句结束,如下图所示:2、运行脚本之后,在命令行窗口可以看到b已经等于a了,如下图所示:3、if...

matlab中,已知a = [1 2 3],如何通过循环让b = [1 2 3 1 2 3 1 2 3...
用for不用这么麻烦的,像这样就行 a=[1 2 3];for i=1:10 % 设置10次循环 b(1,3*i-2:3*i)=a; %将a赋值 end

相似回答