picking numbers with specific difference in matlab

6 次查看(过去 30 天)
I have a data set...like say CAD from 212 to 550 say with a differnce of 1 and have corresponing SA values to these CAD values
But I want to pick numbers at a specific distance and in a specific sequence ..like 212,212.3,212.7,213,213.3,213.7.....so that later on i can interpolate the SA values on these CAD values.
How can i do that!! if there was single difference between numbers that would be simple as i did here picking data with a differenc of 0.5:
CAD= data(:,1);
SA= data(:,2);
CADQ=CAD(1):0.5:CAD(end);
vq = interp1 (CAD, SA, CADQ);
here i was able to pick 212,212.5,213,213.5....and was able to interpolate SA on these CAD values.
now how can i do that..picking CAD data in the sequence 212,212.3,212.7,213,213.3,213.7,214,214.3.....
  1 个评论
Rik
Rik 2021-3-15
I don't understand your question well enough to answer it, but it sounds as if ismember will be helpful.

请先登录,再进行评论。

采纳的回答

Steven Lord
Steven Lord 2021-3-15
One way is to take advantage of implicit expansion.
x = 212:215;
y = [0; 0.3; 0.7];
z = reshape(x+y, 1, [])
z = 1×12
212.0000 212.3000 212.7000 213.0000 213.3000 213.7000 214.0000 214.3000 214.7000 215.0000 215.3000 215.7000
  5 个评论
Rik
Rik 2021-3-15
Create an array where you repeat 0.3 0.5 enough times, set your starting offset as the first value and then use cumsum to calculate the cumulative sum.
x=repmat([0.3 0.5],1,5)
x = 1×10
0.3000 0.5000 0.3000 0.5000 0.3000 0.5000 0.3000 0.5000 0.3000 0.5000
x(1)=213
x = 1×10
213.0000 0.5000 0.3000 0.5000 0.3000 0.5000 0.3000 0.5000 0.3000 0.5000
x=cumsum(x)
x = 1×10
213.0000 213.5000 213.8000 214.3000 214.6000 215.1000 215.4000 215.9000 216.2000 216.7000
Usama Bin Khalid
Usama Bin Khalid 2021-3-15
Yes it worked perfectly...so we can use this code to interpolate any repetitive values....Thanks

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by