Matlab 如何使用索引在矩阵中存储值?

Matlab 如何使用索引在矩阵中存储值?,matlab,matrix,Matlab,Matrix,我有一个3000x3000矩阵(比如,DAT) 在另一个变量中,我存储了7个值 基本上 瓦尔是 1.7361111e-13 5.2083338e-13 1.9675925e-12 2.5462963e-12 1.4467592e-12 2.3148147e-13 6.3657407e-13 我还有7个值的相应索引 [x ,y]=find(~isnan(DAT)); x是 y是 loc=查找(~isnan(DAT)) 我想使用给定的索引将“val”的值存储在原始矩阵“DAT”中 我怎么做 另外

我有一个3000x3000矩阵(比如,DAT)

在另一个变量中,我存储了7个值

基本上

瓦尔是

1.7361111e-13
5.2083338e-13
1.9675925e-12
2.5462963e-12
1.4467592e-12
2.3148147e-13
6.3657407e-13
我还有7个值的相应索引

[x ,y]=find(~isnan(DAT));
x是

y是

loc=查找(~isnan(DAT))

我想使用给定的索引将“val”的值存储在原始矩阵“DAT”中

我怎么做


另外,我的实际数据要大得多,因此需要一个通用的解决方案。

假设你有一个一维矩阵,而不是一个二维矩阵,你可以在其中存储所有的值(这种方法更有效,尤其是对于大型矩阵)。对于列主有序矩阵,您需要求解方程
index=x*maxrows+y
,其中
x
用于迭代列,而
y
用于迭代行。对于3000x3000矩阵,
maxrows
的值为3000。因此,给定
x=1666
y=1037
的值,一维列主序矩阵的相应索引值为
index=1666*3000+1037=4999037

,您可以直接使用逻辑矩阵
~isnan(DAT)
将值存储在原始矩阵中

DAT(~isnan(DAT)) = vals;

您希望使用哪种平台或语言?Matlab…………使用与您相同的技术,除了使用
1
,而不是
val
。我已经添加了一些有关索引的更多信息。非常感谢。请看一看。我只想用这个索引来存储值。。。
1037
1037
1037
1037
1037
1037
1037
3627666
3627667
3627668
3627669
3627670
3627671
3627672
DAT(~isnan(DAT)) = vals;