Re: [問題] 矩陣元素取代 不用迴圈硬幹

看板MATLAB作者 (失ゎれた彩畫)時間9年前 (2014/09/24 00:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1K8Q19nT (MATLAB)
文章代碼(AID): #1K8Q19nT (MATLAB)