MATLAB: How to creat this vector Z I have two vector X and Y: X=[2 5 1 9 3 4 nan nan 4 3 6 9 2 nan nan nan 8 2 13 6 1 nan nan]; Y is the max of each segment Y=[9 9 13]; I need to creat vector Z Z=[2 5 1 NAN NAN NAN NAN NAN 4 3 6 NAN NAN NAN NAN NAN 8 2 NAN NAN NAN NAN] Best Answer Try this: X=[nan nan 4 3 6 9 2 nan nan nan 8 2 13 6 1 nan];Y=[9 13];risingEdgeLocs = find(diff(~isnan(X)) > 0);indSplit = find(ismember(X,Y));for i = 1:numel(indSplit)-1 X(indSplit(i):risingEdgeLocs(i+1)) = nan;endX(indSplit(end):end) = nan;Z = X; Related SolutionsMATLAB: Count number of values between NaN In = [NaN; NaN; NaN; NaN; 1; 1; 1; 1; NaN; NaN; NaN; 1; NaN; NaN; NaN; NaN; NaN; NaN; NaN; 1; NaN; NaN; NaN; NaN];[a,b] = rude(~isnan(In));a(b)rude is on the FEX MATLAB: How to select or group sections of an array without using indexing >> A = [NaN, NaN, NaN, NaN, 2, 3, 6, 7, NaN, NaN, NaN, NaN, NaN, 4, 6, 8, 8, NaN, NaN, NaN, NaN];>> X = diff([true,isnan(A),true]);>> B = find(X<0);>> E = find(X>0)-1;>> F = @(b,e) A(b:e);>> C = arrayfun(F,B,E,'uni',0);>> C{1}ans = 2 3 6 7>> C{2}ans = 4 6 8 8 Related QuestionRemove sub-matrix if any col are all nan (3D matrix)Substituting value in matrix does not work for some reasonFind the indices of one variable in another one avoiding NaNsHow to select a part of an array between NaN valuesHow to select non-NaN from a matrixHow can I get the max of the values between NaN’s in an arrayFind row with NaN in it.
Best Answer