0001 function [newvec] = vb_util_get_overlapping_vector(vec1, vec2)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 if ~exist('vec1', 'var'), vec1 = []; end
0021 if ~exist('vec2', 'var'), vec2 = []; end
0022 [vec1, vec2, mode] = inner_check_arguments(vec1, vec2);
0023
0024
0025
0026
0027 newvec = [];
0028
0029 if mode == 1
0030
0031 for iv = vec1
0032 if any(iv == vec2)
0033 newvec = [newvec; iv];
0034 end
0035 end
0036 else
0037
0038 n_vec1 = length(vec1);
0039 n_vec2 = length(vec2);
0040 for i_vec1 = 1:n_vec1
0041 for i_vec2 = 1:n_vec2
0042 if strcmp(vec1(i_vec1),vec2(i_vec2))
0043 newvec = [newvec; vec1(i_vec1)];
0044 break;
0045 end
0046 end
0047 end
0048 end
0049 return;
0050
0051
0052
0053
0054
0055
0056
0057 function [vec1, vec2, mode] = inner_check_arguments(vec1, vec2)
0058 func_ = mfilename;
0059
0060 if isempty(vec1)
0061 error('(%s)vec1 is a required parameter', func_);
0062 end
0063
0064 if isempty(vec2)
0065 error('(%s)vec2 is a required parameter', func_);
0066 end
0067
0068
0069 if isnumeric(vec1)
0070 mode = 1;
0071 if ~isnumeric(vec2)
0072
0073 tmp_vec2 = vec2;
0074 n_len = length(vec2);
0075 vec2 = zeros(n_len, 1);
0076 for i_data = 1:n_len
0077 vec2(i_data) = str2double(tmp_vec2(i_data));
0078 end
0079 end
0080 else
0081 mode = 2;
0082 if isnumeric(vec2)
0083
0084 tmp_vec2 = vec2;
0085 n_len = length(vec2);
0086 vec2 = cell(n_len, 1);
0087 for i_data = 1:n_len
0088 vec2(i_data) = {num2str(tmp_vec2(i_data))};
0089 end
0090 end
0091 end
0092
0093 vec1 = vb_util_arrange_list(vec1,1);
0094 vec2 = vb_util_arrange_list(vec2,1);
0095
0096 return;
0097
0098
0099
0100
0101
0102