re-formatting a matrix

6 次查看(过去 30 天)
Richard
Richard 2012-10-26
This is a simplistic example of a problem I am facing:
depth = [0:1:20]';
data = rand(1,length(depth))';
d = [depth,data];
d = [d;d;d];
Consider the matrix 'd'. Here we have depth in the first column followed by temperature measurements recorded at that depth in column 2 (in this example we have 3 days of data). How could I alter this matrix so that each column represents a specific depth and each row represents time. So, finally I should have 3 rows with 21 columns (hence I do not need the column of depths).

采纳的回答

Andrei Bobrov
Andrei Bobrov 2012-10-26
dout = reshape(d(:,2),numel(depth),[]).';

更多回答(1 个)

Daniel Shub
Daniel Shub 2012-10-26
First lets create some dummy data. I am intentionally creating it in a non-optimal manner
depth = [0:1:20]';
data1 = rand(length(depth), 1);
data2 = rand(length(depth), 1);
data3 = rand(length(depth), 1);
You can then do
d = [depth, data1, data2, data3]
A better way to generate the data would be
data(:, 1) = rand(length(depth), 1);
data(:, 2) = rand(length(depth), 1);
data(:, 3) = rand(length(depth), 1);
and then
d = [depth, data]
You could of course do
data = rand(length(depth), 3);
but this probably doesn't work with your work flow of how you have the actual data saved.

类别

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

标签

Community Treasure Hunt

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

Start Hunting!

Translated by