24小时热门版块排行榜    

查看: 2359  |  回复: 6

3346055

新虫 (初入文坛)

[求助] MATLAB怎么使用循环语句解决依次读取同一个excel中相邻各列的数据 已有2人参与

MATLAB怎么依次读取同一个excel文件中相邻各列的数据,并依次赋值给同一个矩阵。
例如下图中的各列数据,我想先读取第一列数据并赋值给矩阵A,然后运行后续的计算语句,运行完成后,在自动读取第二列数据再次赋值给矩阵A,重复相同的计算,以此类推,直到读取到最后一列数据。要怎么办,我现在使用的是xlsread命令,但是读取单元格范围在引号内,不能定义成变量。
求各位大神指导,小弟初来乍到只能给20个币,别嫌少~

MATLAB怎么使用循环语句解决依次读取同一个excel中相邻各列的数据
捕获.JPG
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
把Excel内数据一次性读到一个大矩阵里,然后对矩阵每一列按你的要求操作不就可以了。
知其然,知其所以然。
2楼2016-02-21 17:46:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
3346055: 金币+10, ★★★很有帮助 2016-02-21 19:01:39
CODE:
m = xlsread('test.xls');    %假设你的excel文件在工作路径里,文件名test1.xls
                            %此时,m变量包含你整个矩阵了
[N_m,Ncol_m] = size (m);    %矩阵的大小,列数为Ncol_m

for i_m = 1:1:Ncol_m
   
    ...                     %你自己的计算设置
        a = m(:,i_m);
    ...                     %你自己的计算设置
end

老古董
3楼2016-02-21 17:59:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

3346055

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by mygt_hit at 2016-02-21 17:46:07
把Excel内数据一次性读到一个大矩阵里,然后对矩阵每一列按你的要求操作不就可以了。

因为每次的计算步骤都是相同的,所以如果能每次只改变矩阵的值,就能大幅度简化程序了。
4楼2016-02-21 18:48:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

3346055

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by guo_zy_123 at 2016-02-21 17:59:33
m = xlsread('test.xls');    %假设你的excel文件在工作路径里,文件名test1.xls
                            %此时,m变量包含你整个矩阵了
= size (m);    %矩阵的大小,列数为Ncol_m

for i_m = 1:1:Ncol_m ...

大神啊,果然好用!
再请教一下,我先想每次读取相邻的两列,就是第一次读取1、2列,第二次读2、3列,以此类推,然后把每次运算得到的结果写入另一个excel表格中,第一次的结果写入第一列,第二次的结果写入第二列,以此类推。这样怎么办呢?
5楼2016-02-21 19:01:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
3346055: 金币+10, ★★★★★最佳答案 2016-02-22 15:08:32
引用回帖:
5楼: Originally posted by 3346055 at 2016-02-21 19:01:07
大神啊,果然好用!
再请教一下,我先想每次读取相邻的两列,就是第一次读取1、2列,第二次读2、3列,以此类推,然后把每次运算得到的结果写入另一个excel表格中,第一次的结果写入第一列,第二次的结果写入第二列 ...

CODE:
out = [];%申明一个空变量
m = xlsread('test.xls');    %假设你的excel文件在工作路径里,文件名test1.xls
                            %此时,m变量包含你整个矩阵了
[N_m,Ncol_m] = size (m);    %矩阵的大小,列数为Ncol_m

for i_m = 1:1:Ncol_m
   
    ...                     %你自己的计算设置
        a = m(:,i_m:i_m+1);   %这样就是2列了
    ...                     %你自己的计算设置

%假设你的计算结果是b,b要是个列向量
out = [out, b];
end
xlswrite('test.xls',out);

老古董
6楼2016-02-21 21:10:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qxtlyf

至尊木虫 (正式写手)

气象
7楼2016-02-22 03:55:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 3346055 的主题更新
信息提示
请填处理意见