【发布时间】:2013-04-24 15:37:43
【问题描述】:
是否可以重塑矩阵,使得
x1 =
1 5
3 4
4 3
7 1
变成
x2 =
5
NaN
4
3
NaN
NaN
1
反之亦然,其中x1 中的第一列是对应于x2 中的行# 的索引?
【问题讨论】:
是否可以重塑矩阵,使得
x1 =
1 5
3 4
4 3
7 1
变成
x2 =
5
NaN
4
3
NaN
NaN
1
反之亦然,其中x1 中的第一列是对应于x2 中的行# 的索引?
【问题讨论】:
用 NaN 创建一个数组并用值填充它:
x2 = NaN(max(x1(:,1)),1);
x2(x1(:,1)) = x1(:,2);
现在,如果可以接受零填充,那么您可以直接使用第二行,而无需先创建out。
或者,对于您的具体示例(无重叠索引),可以通过以下方式实现相同的结果:
accumarray(x1(:,1),x1(:,2),[],[],NaN)
另辟蹊径
idx = ~isnan(x2);
x1 = [find(idx) x2(idx)];
【讨论】:
x2 到x1
??? Error using ==> isnan Not enough input arguments.