簡體   English   中英

MATLAB:將一維字符串的單元格數組轉換為二維字符串

[英]MATLAB: Convert cell array of 1D strings to 2D string

MATLAB的最新版本具有字符串 ,它們是字符向量的N維矩陣。 我有一個這樣的1D字符串的單元格數組,我想將它們組合成一個2D字符串,但是這樣做很麻煩。 joinstrjoinstrcat函數在字符串內部的字符數組上起作用,而cell2mat不起作用:

>> cell2mat({strings(1, 4); strings(1, 4)})
Error using cell2mat (line 52)
CELL2MAT does not support cell arrays containing cell arrays or objects. 

有什么好辦法嗎? 我希望上述情況下的輸出是2x1 string對象。

string對象與同一類型串聯時,其行為與任何其他數據類型( doublechar等)一樣。 只要您希望結果也成為string對象,請使用普通串聯。

result = [strings(1, 4); strings(1, 4)];

或者您可以使用catvertcat更明確

result = cat(1, strings(1, 4), strings(1, 4));
result = vertcat(strings(1, 4), strings(1, 4));

或者,您可以使用索引對同一元素進行兩次采樣

result = strings([1 1], 4);

如果您的數據已經在單元格數組中,則可以使用{:}索引生成一個逗號分隔的列表,您可以將該列表傳遞給cat

C = {string('one'), string('two')};
result = cat(1, C{:})

附帶說明一下,MATLAB中沒有一維數組。 所有數組至少為二維(其中一個可以為1)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM