比方說,我有一個這樣的表:MATLAB - 在一個表中提取選定行基於一些標準
post user date
____ ____ ________________
1 A 12.01.2014 13:05
2 B 15.01.2014 20:17
3 A 16.01.2014 05:22
我想創建一個較小的表包含的所有帖子(但不刪除原有的一個!) - 例如 - 用戶A,包括髮布日期。
當看着MATLAB's documentation(請參閱刪除行的最後一部分)時,我發現MATLAB允許您根據某些標準爲表創建掩碼。所以在我的情況下,如果我做這樣的事情:
postsA = myTable.user == 'A'
我得到一個不錯的掩碼矢量如下:
>> postsA =
1
0
1
其中1S顯然在那些行myTable的,滿足我給出的規則。
在我已經指出,在上述行機制的文檔從原始表中刪除:
postsNotA = myTable.user ~= 'A' % note that I have to reverse the criterion since I'm choosing stuff that will be removed
myTable(postsNotA,:) = [];
不過,我想 - 上面說 - 喜歡不碰我的原始表。這裏是一個可能的解決方案是創建一個空表有兩列:
post date
____ ____
interate通過我的原始表中的所有行,同時也看着我的面具矢量postsA的當前值,如果它等於1 ,複製我感興趣的那一行中的兩列,並將這個縮小的行連接到我的較小的表中。我想知道的是,如果這個問題的解決方案或多或少有1-2行的話?
如何'表(t1.post(的strcmp(t1.user, 'A')),t1.date(的strcmp(t1.user, 'A'))) ','t1'是你原來的桌子? – Divakar 2014-12-04 17:35:42
這將返回一個空表。由於我的數據集很大,我重新創建了與原始文章中相同的表格,以測試您的方式。你測試過了嗎?如果是這樣,你可以請你發佈你的代碼,以便我可以比較。 – rbaleksandar 2014-12-04 18:08:24
感謝您的幫助! – rbaleksandar 2014-12-04 18:29:30