MATLAB中如何用for循环连续拼接矩阵?

问题:我有1.txt,2.txt,,,100.txt这100个txt文档中有相同形式的20480×8的矩阵a{i},现在要用for循环将这100个矩阵拼接成2048000... 问题:我有1.txt,2.txt,,,100.txt 这100个txt文档中有相同形式的20480×8的矩阵a{i},现在要用for循环将这100个矩阵拼接成2048000×8的矩阵。应该怎么去写比较好?

%导入数据
clear;
a=cell(100,1);
%利用文件名,依次导入txt文件
for i=1:100;
dn=strcat('',int2str(i),'.txt');
a{i}=load(dn);
end
b=cell(1,100);
for i=1:100;
%将a{i}转置以便于拼接
b{i}=a{i}';
% 将a{i}矩阵拼接成一个矩阵
??
end
展开
 我来答
tianxiawulang
推荐于2017-11-26 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2652万
展开全部

实现拼接根本不需要循环,一个语句就够了(前面load数据的部分不变):

cat(1,a{:})

示例:

>> a={magic(3); eye(3); ones(3)}
a =
    [3x3 double]
    [3x3 double]
    [3x3 double]
>> cat(1,a{:})
ans =
     8     1     6
     3     5     7
     4     9     2
     1     0     0
     0     1     0
     0     0     1
     1     1     1
     1     1     1
     1     1     1
迂堂派
2013-11-20 · 知道合伙人软件行家
迂堂派
知道合伙人软件行家
采纳数:335 获赞数:1062
西南大学电子与通信工程专业。热爱 IT,喜欢阅读~

向TA提问 私信TA
展开全部

这样子就行了哈!

你看看哈:

% File:main.m
% 把程序 放到和 *.txt 同一目录下面
% listing 为一个结构体数据类型
listing = dir('*.txt');
N = 100;

allData = [];
for i = 1:N
    fileName = listing(i).name;
    fileData = load(fileName);
    allData = [allData; fileData];
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钺小夏侯pf
2015-10-16 · TA获得超过2460个赞
知道小有建树答主
回答量:578
采纳率:69%
帮助的人:388万
展开全部
如果A是一个cell,A{2}是一个矩阵,那么是A{2}(1,2)
A = cell(1,3);
A{1} = rand;
A{2} = rand(2);
A{3} = rand(3);
A{3}
A{3}(2,3)
A{3}(2,:)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
giantbrain
2013-11-20 · TA获得超过347个赞
知道小有建树答主
回答量:358
采纳率:100%
帮助的人:154万
展开全部
a=zeros(102400,8);
for i=0:99
fid = fopen([pwd,'\',num2str(i),'.txt']);
a(1024*i+[1:1024],8)= fscanf(fid , '%f', [8 inf])';
fclose(fid);
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式