Replacing specific rows in a matrix.

I would like to replace the cells with the following features (those whose types are 9 or 12 and their ID is one of these numbers, 2,11,12). Then I want to replace them with NaN. However, indexB is a vector of 0 s only.
indexB = ( (Type == 9|Type ==12) & (IDscript ==2|IDscript==11|IDscript==12) );
RT(indexB)=NaN;

2 件のコメント

James Tursa
James Tursa 2018 年 5 月 10 日
Have you looked at your data to make sure you have any spots that match all of the criteria?
Elaheh
Elaheh 2018 年 5 月 10 日
Yes. It does. Here is my data attached. I had to change xlsx to xls to be able to attach the file.

サインインしてコメントする。

 採用された回答

sloppydisk
sloppydisk 2018 年 5 月 10 日

0 投票

a = xlsread('Book2.xls');
indexB = (a(:, 2) == 9|a(:, 2) ==12) & (a(:, 6) ==2|a(:, 6)==11|a(:, 6)==12);
find(indexB)
This gives me 6 indices: 29, 30, 363, 364, 573 and 574.

2 件のコメント

Elaheh
Elaheh 2018 年 5 月 10 日
Thank you. Is this different from your code? indexB = (mergedData(Type) == 9|mergedData(Type) ==12) & (mergedData(IDscript) ==2|mergedData(IDscript)==11|mergedData(IDscript)==12 ); where a is a matrix (mergedData) and (:,2) is Type? Mine does not work.
sloppydisk
sloppydisk 2018 年 5 月 10 日
The idea is the same but is mergedData just a 748x6 double? What is the data type of "Type" and "IDscript"?

サインインしてコメントする。

その他の回答 (1 件)

Elaheh
Elaheh 2018 年 5 月 10 日

0 投票

merged file (748*6) is the content of the excel file I sent you. Ive just started using MATLAB. Type= mergedData(:,2); accuracy= mergedData(:,3); RT= mergedData(:,4); TypeScript=mergedData(:,5); IDscript= mergedData(:,6);

1 件のコメント

sloppydisk
sloppydisk 2018 年 5 月 10 日
Yeah that should work. You can attach the script if it's still not working for you.

サインインしてコメントする。

質問済み:

2018 年 5 月 10 日

コメント済み:

2018 年 5 月 10 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by