Re: [問題] 矩陣元素取代 不用迴圈硬幹
※ 引述《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://www.ptt.cc/bbs/MATLAB/M.1411489865.A.C5D.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):