MATLAB: Appending vectors in a loop

vectors

Data1 =
4
5
6
7
8
9
10
11
12
-1
4
5
6
7
8
9
10
11
12
-1
4
5
6
7
8
9
10
11
12
-1
4
5
6
7
8
9
10
11
12
-1
Data2= Columns 1 through 2
[ 4] [0.0119]
[ 5] [0.0119]
[ 6] [0.0143]
[ 7] [0.0143]
[ 8] [0.0187]
[ 9] [0.0256]
[10] [0.0273]
[11] [0.0119]
[12] [0.0143]
I want to be able to take in values from data2 for column 2 using the corresponding values in column 1 and data1 . I would use the following command:
find(ismember(cell2mat(data2),data1)==1);
The problem, if you look closely at the first set, is that there is a -1. I need to force it’s value to be zero. Thus I would have to append the vector.
If the command about is within a loop, how do I append data2 without prompting an error?

Best Answer

out=Data2(ismember(cell2mat(Data2(:,1)),Data1),:)
% to change values of Data1 from -1 to 0
Data1(Data1==-1)=0