作者tomichy (tomichy)
看板MATLAB
标题Re: [问题] 矩阵元素的重新分配疑问 ?
时间Fri Jun 17 21:01:09 2016
※ 引述《MrsJ (MrsJ)》之铭言:
试例如下:
如不用回圈 还能更简化吗?
clear all;clc;
matA=[[3,5,8,10,14];sqrt([4,7,11,18,35])]'
[mx my]=size(matA);
matB=[[1:20]' zeros(size([1:20]'))];
for i=1:mx
matB(matA(i,1),2)=matA(i,2);
end
matB
: 各位先进好 自修matlab中 目前遇到一个小瓶颈
: 没法用(我已知的)语法建构我所需(较庞大的)的矩阵
: 问题简化描述如下:
: 令 7x2 矩阵 MatA=
: [ 2.0000 3.4641
: 4.0000 3.7417
: 5.0000 3.8730
: 6.0000 4.0000
: 8.0000 4.2426
: 10.0000 4.4721
: 13.0000 5.0898 ]
: 这里想构造另一个更大的 15x2 矩阵 MatB, 比如说
: 令 MatB= ( 方便起见 MatB(1,1) = 1.000 )
: [ 1.0000 0
: 2.0000 3.4641
: 3.0000 0
: 4.0000 3.7417
: 5.0000 3.8730
: 6.0000 4.0000
: 7.0000 0
: 8.0000 4.2426
: 9.0000 0
: 10.0000 4.4721
: 11.0000 0
: 12.0000 0
: 13.0000 5.0898
: 14.0000 0
: 15.0000 0 ]
: 亦即规则是, 若 MatB(:,1)的某元素 MatB(N,1) 在MatA(:,1)中是不存在的
: 那麽就令 MatB(N,2)=0
: 因为实际需要处理的矩阵dimension更大 不可能蠢到手动插值
: 目前也找不到合适的 fuction 可以直接把MatA的元素分解排进 MatB 中
: 想尝试使用再加一个回圈来执行这个要求 ... 我不幸卡住。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.38.148
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1466168475.A.014.html
1F:→ celestialgod: 我不是回了一个不用回圈的方法吗... 06/17 21:04
2F:→ name0625: 好像也没人回要回圈的方法0.0 06/18 01:55
3F:→ tomichy: 喔 是啊 ismember 06/18 12:32
4F:→ s4300026: 因为回圈慢 06/18 14:19