第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在MATLAB中將不同長度的單元格累積到矩陣中?

如何在MATLAB中將不同長度的單元格累積到矩陣中?

因此,我有一個(gè)1xN個(gè)不同長度向量的單元格數(shù)組。我想將它們附加到矩陣中,以便可以使用顯示它們imagesc。顯然,矩陣必須是最大向量的寬度。我當(dāng)前的代碼如下:tcell = {[1,2,3], [1,2,3,4,5], [1,2,3,4,5,6], [1], []};lens = cellfun('length', tcell);rmat = NaN(length(tcell), max(lens));for i = 1:length(tcell)    rmat(i, 1:lens(i)) = tcell{i};end有人知道這種問題的矢量化解決方案嗎?由于MATLAB的JIT,我并不真正擔(dān)心此循環(huán)的速度。我只是想擴(kuò)展自己的知識,這是我在編程中經(jīng)常遇到的一個(gè)案例。
查看完整描述

1 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是一個(gè)cellfun與匿名函數(shù)一起使用的解決方案,首先用NaN值填充每個(gè)單元格,然后vertcat將單元格內(nèi)容放入矩陣中:


tcell = {[1 2 3], [1 2 3 4 5], [1 2 3 4 5 6], [1], []};  % Sample cell array


maxSize = max(cellfun(@numel, tcell));               % Get the maximum vector size

fcn = @(x) [x nan(1, maxSize-numel(x))];             % Create an anonymous function

rmat = cellfun(fcn, tcell, 'UniformOutput', false);  % Pad each cell with NaNs

rmat = vertcat(rmat{:});                             % Vertically concatenate cells

并輸出:


rmat =


     1     2     3   NaN   NaN   NaN

     1     2     3     4     5   NaN

     1     2     3     4     5     6

     1   NaN   NaN   NaN   NaN   NaN

   NaN   NaN   NaN   NaN   NaN   NaN


查看完整回答
反對 回復(fù) 2019-11-19
  • 1 回答
  • 0 關(guān)注
  • 1219 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號