How can I increase the the number of data-points in a scattered data set?

79 visualizzazioni (ultimi 30 giorni)
I have a 461 by 3 matrix in which the first column is x coordinates, second one y and third one z coordinates. The values of the elements of z column is o. (i.e it is actually 2D data but I need 3D data for further calculation so I kept the third column.). The values of the data set are scattered values.
Now I want to get more coordinate values (x,y,z) within this data set. The z values will be zero.
Can I use the function interp1/2/3??? how??
My main problem is achieving the coordinate matrix with all (prev.+interpolated) values. The interp function shows the value of a desired point, but I do not need that.
Thanks in advance.

Risposta accettata

David Sanchez
David Sanchez il 8 Lug 2013
M=rand(50,3);
M(:,3) = 0;
M = sort(M,1,'ascend');
% double the data in X column
x_extended = interp(M(:,1),2);
% dobule the data in Y column
y_extended = interp(M(:,2),2);
% new data containing all data
M_new = [x_extended, y_extended, zeros(100,1)];

Più risposte (3)

Kheya Banerjee
Kheya Banerjee il 8 Lug 2013
David, thank you very much. It woks perfectly! (as far as the data set is long enough)

Kheya Banerjee
Kheya Banerjee il 8 Lug 2013
David, there is a small problem. as I am considering the data as coordinates, (x,y), the actual data points become changed when you sorted it, isn't it right??
is there any way to keep the data combinations same???? i.e. x point and y point of a particular row (of the given data sheet) remains in the same row after interpolating,too.
Can you help me in this matter?

David Sanchez
David Sanchez il 8 Lug 2013
Just skip the sort command, I did it for testing purposes. The interp will create new point in between every consecutive pair of data:
M = my_50x3_data_matrix;
x_extended = interp(M(:,1),2);
% dobule the data in Y column
y_extended = interp(M(:,2),2);
% new data containing all data
M_new = [x_extended, y_extended, zeros(100,1)];
  1 Commento
Shins K
Shins K il 2 Lug 2022
When I used the same code, I am getting the error message "Unrecognized function or variable 'interp'". Could you please let me know why it is so, if you know?

Accedi per commentare.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by