Concatenate matrix numbers linspace
Ältere Kommentare anzeigen
Hi there,
I have a matrix variable x = [0 1 2 3]
I want to generates linearly spaced vectors in between the numbers into a variable. My problem here is concatenate the numbers into p the next time n increases.
I know i should be using linspace to generate number for eg:
for i = 1:(length(x)-1)
p = linspace(x(i),x(i+1),0.5)
end
the results i want is:
p = 0 0.5 1 1.5 2 2.5 3
Hope someone can shed some light here.
1 Kommentar
Azzi Abdelmalek
am 13 Aug. 2012
what do you mean by
p = linspace(x(i),x(i+1),0.5)
Akzeptierte Antwort
Weitere Antworten (5)
p = 0:.5:3;
or
p = linspace(0,3,7)
EDIT.
I think I misunderstood your problem. Do you mean like this:
x = [0.25 1 1.5 2 2.4 2.6]
x(2,1:end-1) = diff(x)/2+x(1:end-1);
x = reshape(x(1:end-1),1,[])
Amazing Trans
am 13 Aug. 2012
0 Stimmen
Sean de Wolski
am 13 Aug. 2012
Bearbeitet: Sean de Wolski
am 13 Aug. 2012
Here is a terrible solution:
x = 0:3; %sample x
x = [x(1:end-1); x(2:end)]; %each start/end pair
nAdd = 2; %add two elements between
xnew = interp1((1:2)',x,linspace(1,2,2+nAdd)); %interpolate (2d linspace)
xnew = vertcat(reshape(xnew(1:end-1,:),[],1),x(end)) %keep non-duplicate parts
Amazing Trans
am 14 Aug. 2012
Bearbeitet: Amazing Trans
am 14 Aug. 2012
3 Kommentare
Amazing Trans
am 14 Aug. 2012
Matt Fig
am 14 Aug. 2012
Please close out this question by selecting a best answer then post a new question and link back to this one.
Sean de Wolski
am 14 Aug. 2012
My answer handles your first scenario!
Amazing Trans
am 14 Aug. 2012
0 Stimmen
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!