查看: 404|回复: 5|关注: 0

[已解决] 循环赋值

[复制链接]

新手

18 麦片

财富积分


050


8

主题

20

帖子

0

最佳答案
大家好,我的问题如下

我想让learning_matrix_mean第一列赋值给learning_matrix_mean_1,第二列赋值给learning_matrix_mean_2
请问如何能实现这样的代码呢?
也就是这样

learning_matrix_mean_1 =learning_matrix_mean(:,1)

learning_matrix_mean_2 =learning_matrix_mean(:,2)
.......一直到16

for i=1:16
learning_matrix_mean_(i) =learning_matrix_mean(:,i)这样为什么不行呢?


论坛优秀回答者

权威

3368 麦片

财富积分



2

主题

3639

帖子

757

最佳答案
  • 关注者: 153
发表于 2019-2-2 16:27:27 | 显示全部楼层
for i=1:16
eval(['learning_matrix_mean_' num2str(i) '=learning_matrix_mean(:,i)']);
end

新手

18 麦片

财富积分


050


8

主题

20

帖子

0

最佳答案
 楼主| 发表于 2019-2-2 16:33:07 | 显示全部楼层
maple1314168 发表于 2019-2-2 16:27
for i=1:16
eval(['learning_matrix_mean_' num2str(i) '=learning_matrix_mean(:,i)']);
end

谢谢大神这么快的回复,但是还有一个问题,如果用了你的这个表达式我想让后面的变量也直接使用该怎么用呢?
            for i=1:16
                eval(['learning_matrix_mean_' num2str(i) '=learning_matrix_mean(:,i)']);
                eval(['validation_matrix_mean_' num2str(i) '=validation_matrix_mean(:,i)']);               
                [~, ~,validation_label_vector_hmm_1,~, ~] = run_HMM(validation_matrix_mean_1, validation_label_vector, 20);
                    if perform_training
                        [TRANS, EMIS,learning_label_vector_hmm_1,~, ~] = run_HMM(learning_matrix_mean_1, learning_label_vector, 20);
                    end
                    if ~isempty(learning_set)
                        learning_res_1 = hmmviterbi(learning_label_vector_hmm_1,TRANS,EMIS);
                        learning_res_1 = learning_res_1';
                    end
                    if ~isempty(validation_set)
                        validation_res_1 = hmmviterbi(validation_label_vector_hmm_1,TRANS,EMIS);
                        validation_res_1 = validation_res_1';
                    end
            end
意思是这个里面的validation_label_vector_hmm_1等等尾标是1的都想要换成validation_label_vector_hmm_i,请问这样该怎么做呢?

新手

18 麦片

财富积分


050


8

主题

20

帖子

0

最佳答案
 楼主| 发表于 2019-2-2 17:00:20 | 显示全部楼层
maple1314168 发表于 2019-2-2 16:27
for i=1:16
eval(['learning_matrix_mean_' num2str(i) '=learning_matrix_mean(:,i)']);
end

求老师解答啊。。。刚又试了好久没弄对

论坛优秀回答者

权威

3368 麦片

财富积分



2

主题

3639

帖子

757

最佳答案
  • 关注者: 153
发表于 2019-2-2 17:00:56 | 显示全部楼层 |此回复为最佳答案
wzs0707 发表于 2019-2-2 16:33
谢谢大神这么快的回复,但是还有一个问题,如果用了你的这个表达式我想让后面的变量也直接使用该怎么用呢 ...

之前那一步不用做啦!
直接:
run_HMM(validation_matrix_mean(:,i),................)

非要这样的话:
run_HMM(eval(['learning_matrix_mean_' num2str(i)]),...........)

新手

18 麦片

财富积分


050


8

主题

20

帖子

0

最佳答案
 楼主| 发表于 2019-2-2 19:08:34 | 显示全部楼层
maple1314168 发表于 2019-2-2 17:00
之前那一步不用做啦!
直接:
run_HMM(validation_matrix_mean(:,i),................)

非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表