Re: [问题] 矩阵元素取代 不用循环硬干

楼主: panzertp (失ゎれた彩画)   2014-09-24 00:31:00
※ 引述《kobenein (哈哈哈)》之铭言:
: X = [0 0 0 1 1 1 1];
: Y = [a0 a1;b0 b1;c0 c1];
: 如何不用循环硬干
: 得到一个矩阵
: [a0 a0 a0 a1 a1 a1 a1;
: b0 b0 b0 b1 b1 b1 b1;
: c0 c0 c0 c1 c1 c1 c1;];
: 谢谢
提供一个更general的方法如下
clear all;clc;
X = [0 0 0 1 1 1 1];
a0=[1 2;3 4];
a1=[5 6;7 8];
b0=[9 10;11 12];
b1=[13 14;15 16];
c0=[17 18;19 20];
c1=[21 22;23 24];
Y = [a0 a1;b0 b1;c0 c1];
A=[a0(:,1);b0(:,1);c0(:,1)];B=[a1(:,2);b1(:,2);c1(:,2)];
T=char(length(X));
T(X==0)='A';
T(X==1)='B';
T=regexprep(T,'A','A ');
T=regexprep(T,'B','B ');
eval(['R=[',T,']'])
R即为所求
主要利用逻辑判断 然后做出一个字串 最后再来eval
为了eval方便 利用了字串取代的方式来做
这样的做法不只可以处理X中连续0和连续1的情形 0和1交错也可以
同时你可以发现我把abc都当成2x2矩阵了 一样可以work

Links booklink

Contact Us: admin [ a t ] ucptt.com