我的元胞数组是1行209列的,假设我要提取其中每个元胞中的第1列和第209列,并将其合并成一个新的矩阵,请问怎么操作,谢谢。
我的元胞数组是1行209列的,假设我要提取其中每个元胞中的第1列和最后1列,并将其合并成一个新的矩阵,请问怎么操作,谢谢。
假设A是209个元素的元胞数组,并且每个元素矩阵的行数相同。
B=[];for n=1:length(A)
B=[B,A{n}(:,[1 end])];%我不知道你想怎么合并,我就按A{1}两列A{2}两列...A{n}两列这样的顺序合了,不是的话你自己改
end追问
你好,谢谢你的回答,不过我提示了部分错误的信息:
??? for?n=1:209
|
Error: Unexpected MATLAB operator.
for?n=1:209我好想没有写这个吧,for和n中间哪来的问号
追问额。。。我确实是运行了这个,
不过貌似还是这个问题。。。我这里的data就是A。。。
??? for?n=1:length(data)
|
Error: Unexpected MATLAB operator.
里面每个小的矩阵都是180行72列的。。。
谢谢。。。
不要直接复制,你手动输入一下命令。网上答题有时候网站会自己添加一些我们看不到的字符。
追问真的成功了 非常谢谢你!!!我也想知道要是我不是合并他们的列,而是合并他们的行需要修改什么地方呢。。。比如我要合并胞元中每个矩阵的第一行和最后一行,也把它做成一个大的矩阵。。。非常感谢,我再加点分,很晚了。。。ORZ
追答合并行
B=[];
for n=1:length(A)
B=[B;A{n}([1 end],:)];
end
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-09-25
如果每个元胞内的矩阵相同,则可如下处理
num=size(yourcell{1},2);
alldata=[yourcell{:}];
yourdata_1_209=alldata(:,mod((1:end),num)==1 | mod((1:end),num)==209)
yourdata_1_END=alldata(:,mod((1:end),num)==1 | mod((1:end),num)==0)
num=size(yourcell{1},2);
alldata=[yourcell{:}];
yourdata_1_209=alldata(:,mod((1:end),num)==1 | mod((1:end),num)==209)
yourdata_1_END=alldata(:,mod((1:end),num)==1 | mod((1:end),num)==0)