Re: [問題] Vectorization已回收

看板MATLAB作者 (_poca.felicita_)時間17年前 (2009/01/23 00:33), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《joeytseng (:))》之銘言: : A = zeros(5,5); : B = [1 3;2 3;1 2;2 5;3 4]; % 5*2的矩陣,第1行為起始的index,第2行為終止的index : 請問要如何用向量化的方式,使 : A的第m列 在B的第m列的兩元素所代表的indices之間的值都設為1 : 也就是 A(1,1:3) = 1 : A(2,2:3) = 1 : . : . : . : A(5,3:4) = 1 有一個超級複雜的方法 基本上是由 cumsum 這語法衍生出來的 clc; clear; A = zeros(5,5); B = [3 5;2 3;1 2;2 5;3 5] % 5*2的矩陣,第1行為起始的index,第2行為終止的index D1=(B(:,2)-B(:,1)+1).'; D2=cumsum(D1); D3=[0 D2(1:end-1)-[1:length(B(:,2))-1]*5]; D4=B(:,1).'; C=zeros(1,sum(D1)); C([1 D2(1:end-1)+1])=1; Q=cumsum( ones(1,sum(D1) ) )-1-D3(cumsum(C))+D4(cumsum(C)); A(Q)=1; A=A.' 每個變數的意義...已經忘了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.69.72.69

01/23 01:26, , 1F
謝謝,我先消化一下
01/23 01:26, 1F
文章代碼(AID): #19U9_aaZ (MATLAB)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #19U9_aaZ (MATLAB)