在MATLAB中怎么从矩阵中提取相应元素,并生成新的矩阵?

比如我有1*1001的矩阵 t=[0 0.01 0.02 0.03 ……10];
1*10的矩阵 t0=[1 2 3 4 5 6 7 8 9 10];
和1*1001的矩阵 y=[0.1 0.5 0.8 …… 0.9];
我想当t里面的数值等于t0里面的数值时,输出相对应的y的值(t和y的值是一一对应),并生成新的矩阵。最后得到一个1*10的新矩阵!希望大虾能够指点!!

subX=X(a,b)是取矩阵X的a行b列。其中,X表示一个矩阵;X(a,b)表示a行b列的子矩阵。X(a,b)取子矩阵在matlab是一种常用的操作,ab都为向量。比如X(2:4,[2 3 5])表示取矩阵X 第2,3,4行和第2,3,6列交叉的矩阵。举例:
>> X=rand(6)
X =
0.2769 0.9502 0.1869 0.2760 0.9597 0.5060
0.0462 0.0344 0.4898 0.6797 0.3404 0.6991
0.0971 0.4387 0.4456 0.6551 0.5853 0.8909
0.8235 0.3816 0.6463 0.1626 0.2238 0.9593
0.6948 0.7655 0.7094 0.1190 0.7513 0.5472
0.3171 0.7952 0.7547 0.4984 0.2551 0.1386
>> X(2:4,[2 3 5])
ans =
0.0344 0.4898 0.3404
0.4387 0.4456 0.5853
0.3816 0.6463 0.2238
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-06-14
t=0:0.01:10;
t0=1:10;
y=[0,10:1009];
a0=[];
for i=1:10
a=y(find(i==t));
A=[a0,a];
a0=A;
end
A
----------------运行结果-------------------
A =

Columns 1 through 9

109 209 309 409 509 609 709 809 909

Column 10

1009

注:因为你的y不清楚,所以我随便选了一个,你可以根据自己的需要,自己改一下y,但是一定要是1*1001的。谢谢啦。不清楚再问。。。本回答被提问者和网友采纳
第2个回答  2012-03-19
比如你有一个矩阵a 直接可以用b(k)=a(j)

在MATLAB中怎么从矩阵中提取相应元素,并生成新的矩阵?
subX=X(a,b)是取矩阵X的a行b列。其中,X表示一个矩阵;X(a,b)表示a行b列的子矩阵。X(a,b)取子矩阵在matlab是一种常用的操作,ab都为向量。比如X(2:4,[2 3 5])表示取矩阵X 第2,3,4行和第2,3,6列交叉的矩阵。举例:>> X=rand(6)X = 0.2769 0.9502 0.1869 0....

matlab如何提取矩阵部分元素?
matlab中取一个矩阵的一部分方法如下:格式A(m,n),用于提取矩阵A中符合m,n要求的部分 1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。2、提取某行某列 A(:,n)提取第n列的所有元素,如A(:,3)提取第三列的所有元素;A(m,:)提取第m行的所有元素,如A(3...

如何在matlab中提取矩阵中的元素
1、第一步打开matlab命令行窗口,输入a=[123;456;789;647],创建一个a矩阵。2、第二步输入a(1:2,1:3),进行提取a矩阵的第1,2行第1到3列。3、第三步按回车键之后,可以看到已经提取了a矩阵的第1,2行第1到3列。4、第四步输入a(2:3,1:2),进行提取a矩阵第2到3行第1到2...

MATLAB中怎样提取矩阵中的元素?
1、首先,打开MATLAB命令行窗口,输入a = [1 2 3; 4 5 6; 7 8 9; 6 4 7]创建一个a矩阵,如下图所示,然后进入下一步。2、其次,完成上述步骤后,输入a(1:2,1:3)以提取矩阵的第1,2行第1到3列,如下图所示,然后进入下一步。3、接着,完成上述步骤后,按Enter键,可以看到矩...

...如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?
???17???NaN???1???8???15 ???NaN???5???7???14???16 ???4???6???13???20???NaN ?附:提取矩阵元素的三种方法:diag(B(A(:,1),A(:,2)))arrayfun(@(r,c)B(r,c),A(:,1),A(:,2))B((A(:,2)-1)*size(B,1)+A(:,1))

想用matlab计算:从一个矩阵中每一列提取出一个元素,生成到一个新的矩 ...
MATLAB代码如下:clc clear all x1=magic(4)[m,n]=size(x1);随你取列中的值 r=round(m*rand(1));for i=1:n x2(i,1)=x1(i,round(m*rand(1)));end x2 运行结果:x1 = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 x2 = 13 5 ...

matlab中怎么取矩阵前三行和第2,4,5,6列构成另外矩阵?
在MATLAB中,你可以使用索引来取出一个矩阵的特定行和列。以下是如何实现这一点的代码:matlab% 假设 A 是你的原始矩阵 A = [1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15; 16 17 18];取前三行 B = A(1:3, :);取第2、4、5和6列 C = B(:, [2, 4, 5, 6]);在这个...

运用matlab如何取每块矩阵的首个元素,组成一个新矩阵?
A = randint(64,64,[0 255]);B = reshape(A,8,8,64);dt = [];for k = 1:64 b = dwt(B(:,:,k),'haar');dt = [dt b(1)];end;reshape(dt,8,8)

如何在matlab提前两个矩阵相同的元素相同的行来生成新的矩阵?
利用find函数就可以了,具体看我这篇文章吧!相信你会懂的!【原创】MATLAB函数使用教程(3):find函数 参考资料:http:\/\/hi.baidu.com\/2008zhenghui\/blog\/item\/a6e582ef95a7c0232cf53411.html

matlab提取已知矩阵元素组成新矩阵
A=rand(N,M); %生成原始数据矩阵 B=reshape(A,n,m,N*M\/(n*m)); %重置矩阵为 32×64×440结构 for k=1:n %选择1-32生成小矩阵 eval(['M' num2str(k) '=B(:,:,k)']); %执行 M1=B(:,:,1)...mr(k)=eval(['rank(M' num2str(k) ')']); %执行 mr(1)=rank(M1)...

相似回答