creating matrix out of another matrix
4 次查看(过去 30 天)
显示 更早的评论
I have a results matrix of size 104*14. I want to create a matrix of size 8*13 in which u(1,1)=results((1:13),4) and....I tried to write the matrix like:
u_mean_Uund=[results(1:13),4; results(14:26),4;results(27:39),4;results(40:52),4;results(53:65),4;...
results(66:78),4;results(79:91),4;results(92:104),4]
But this shows the first column of the results matrix, I actually want a 8*13 matrix in which the arrays are all from column 4.
2 个评论
Stephen23
2019-9-9
Your description contradicts itself: "I want to create a matrix of size 8*13..." but also "I actually want a 8*14 matrix...": so do you want an 8x13 or an 8x14 matrix?
采纳的回答
mehra
2019-9-9
4 个评论
Bruno Luong
2019-9-9
编辑:Bruno Luong
2019-9-9
"I explained why the older comment doesn't give the answer"
And Stephen has explained to you the opposite and I tested it
results=rand(104,14);
% your solution
for nn=1:8
u_depth(nn,:)=transpose(results((13*(nn)-12):13*(nn),4));
end
% Stephen's solution
out = reshape(results(:,4),13,8).';
isequal(u_depth,out)
It returns 1, meaning both gives the same ANSWER on a random input. So Stephen is right and you are wrong.
You just are not rigouruous person and lack patient or perhaps a bit of courtesy to discuss with Stephen.
更多回答(1 个)
Stephen23
2019-9-9
编辑:Stephen23
2019-9-9
out = reshape(results(:,4),13,8).';
out(:,14) = 4; % if you want an 8x14 matrix
10 个评论
Stephen23
2019-9-9
"...but still you have not seen my problem..."
If I failed to understand your problem as you claim, how did I write code that returns exactly the same result as your loop (which you posted four hours later)?
>> results = rand(104,14);
>> for nn=1:8 % your loop
u_depth(nn,:)=transpose(results((13*(nn)-12):13*(nn),4));
end
>> out = reshape(results(:,4),13,8).'; % my simpler reshape
>> isequal(u_depth,out) % The same outputs!
ans =
1
That would require me to make two mistakes:
- to misunderstand your question (which is certainly possible),
- then to write strangely buggy MATLAB code that doesn't do what I want it to do (based on my incorrect understanding of your problem), but that coincidentally ends up doing exactly the same thing as your loop....
With such luck, I should go an buy a lotto ticket!
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!