包含特定值的索引行

11次浏览(过去30天)
奥利弗·库马尔
奥利弗·库马尔 2016年3月26日
编辑: 奥利弗·库马尔2016年3月26日
大家好
我的号码是352X79。第一行包含标记名称。第一列包含文件名。
现在我需要找到所有的NaN值,并将包含NaN的行写入一个新变量X,因此我在一个变量中有所有具有NaN值的列。
或者甚至可以将文件名和NaN标记的名称放入新变量中?所以它看起来像X(1,1) = filname, X(1,2) = markar_Name等等。
谢谢你的帮助!
4评论
奥利弗·库马尔
奥利弗·库马尔 2016年3月26日
你好,斯蒂芬
好的,所有的数字数据也都是矩阵。第1列有标记1的数字,第2列有标记2的数字,等等。我可以用这些数据建立一个表。我的手机里有VPN。
在我建立表格之后,下一步是什么?谢谢你!

登录评论。

接受的答案

Stephen23
Stephen23 2016年3月26日
编辑:Stephen23 2016年3月26日
使用单元格数组完全浪费了MATLAB快速有效地处理数值数组的能力。最好将数据存储在三个数组(冒号、行名、数字数据)中,或者(更好)存储在一个数组中 表格 .无论您使用什么方法来处理混合数据的单元格数组,都将比简单地存储数据要复杂得多 数值型数据 在一个 数字数组
下面的示例显示了当数据存储在simple中时,此任务可以多么简单 数字数组
colC = {“marker1”“marker2”};
rowC = {“testvpn1”“testvpn2”“testvpn3”};
mat = [5,NaN;1,0;6,NaN]%您的数据
[idxR,idxC] = find(isnan(mat))
[colC (idxC), rowC (idxR)]
1评论
奥利弗·库马尔
奥利弗·库马尔 2016年3月26日
编辑:奥利弗·库马尔 2016年3月26日
嘿,非常感谢!我只是将最后一行更改为[rowC(idxR);colC(idxC)],因此我在第一行中获得了我的VPN名称。
colC =标记';rowC = filenames_all';mat = how_many_NaNs;[idxR,idxC] = find(isnan(mat));NaN_mark = [rowC(idxR);colC(idxC)];
现在我得到了一个错误:索引超过了矩阵的维数。
NaN_mark错误(第5行)NaN_mark = [rowC(idxR);colC(idxC)]
我想是因为有时一个文件名有多个NaN值。
如果只有一个NaN值,则代码正常工作。
idxR和idxC是215x1
编辑:它工作!谢谢你!

登录评论。

更多答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!