作者panzertp (失ゎれた彩画)
看板MATLAB
标题Re: [问题] 矩阵元素取代 不用回圈硬干
时间Wed Sep 24 00:31:00 2014
※ 引述《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
--
时の放浪者 (Toki no Hourousha) ----
"FF6 Tina's Theme"
遥か远く 夜を越えて 砂漠の海を 彷徨う
神の声は 蜃气楼 忘れられた人々
影は白く 摇らめきたつ 今ひとたびの 幻
苍く燃える 勇者の梦 永远に眠る人々
遥か远く 夜を越えて‧‧‧
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.32.82.2
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1411489865.A.C5D.html