Matlab组合矩阵

发布于 2024-09-08 03:49:39 字数 638 浏览 3 评论 0原文

student1      student2     student3
code  score   code  score  code  score 
1     20      1     100    1     22 
2     11      3     11     2     90
3     12      4     22     5     11
4     11
5     28

这个问题与 如何将不均匀矩阵组合成一个矩阵?但有点不同。我想合并 n 个大小不同的文件。每个文件都通过循环读取。我怎样才能得到如下所示的输出?

for i=1:n
  ....
  inputdata=[code score];
  sortdata= sortrows(inputdata,1);
end

Output
code s1  s2   s3 
1    20  100  22 
2    11  0    90
3    12  11   0
4    11  22   0
5    28  0    11
student1      student2     student3
code  score   code  score  code  score 
1     20      1     100    1     22 
2     11      3     11     2     90
3     12      4     22     5     11
4     11
5     28

This question is related to How do I combine uneven matrices into a single matrix? but a little bit different. I want to combine n files which have different size. Each file read through loop. How I can get the output as shown below?

for i=1:n
  ....
  inputdata=[code score];
  sortdata= sortrows(inputdata,1);
end

Output
code s1  s2   s3 
1    20  100  22 
2    11  0    90
3    12  11   0
4    11  22   0
5    28  0    11

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

筱武穆 2024-09-15 03:49:39

而不是

inputdata=[code score];
sortdata = sortrows(inputdata,1);

使用

completedata(code, n+1) = score;

这种方式,您将使用 code 作为最终数组的索引。在循环之前初始化completedata可能是一个好主意。

completedata = [(1:codemax)', zeros(codemax, n)];

Instead of

inputdata=[code score];
sortdata = sortrows(inputdata,1);

use

completedata(code, n+1) = score;

This way you are using code as index to your final array. Initialising completedata before the loop would probably be a good idea.

completedata = [(1:codemax)', zeros(codemax, n)];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文