Convert character matrix to numeric matrix

7 ビュー (過去 30 日間)
Raed Alahmadi
Raed Alahmadi 2019 年 1 月 12 日
コメント済み: Raed Alahmadi 2019 年 1 月 14 日
Hello
I have this matrix:
A=['AB' 'AC';'AD' 'AE'];
I want to make each element of this words to have unique value of number. After that I want a code to transfer the numbers to the origin words.
I used this code:
A=['AB' 'AC';'AD' 'AE'];
A = double(A)
A = char(A)
The problem is that the output has the size 2*4 while it should be as the input 2*2 this due to that matlab deals with the letters not the words so it make each letter in separate column.
Please help me.
Thanks
  3 件のコメント
Raed Alahmadi
Raed Alahmadi 2019 年 1 月 12 日
all element in my matrix have the same length so you can exclude that possibility
Image Analyst
Image Analyst 2019 年 1 月 12 日
Your final A is a character array yet you say you want a numerical array. Please state EXACTLY what you'd like to see as the output for the example you've given, so we know whether it needs to be numbers (like 1, 2, etc.), ASCII values (like 65, 66, etc.), or characters (like 'A', 'B', etc.).

サインインしてコメントする。

採用された回答

Stephen23
Stephen23 2019 年 1 月 12 日
If you really need a 2x2 array then one straightforward way would be to use a cell array:
>> A = {'AB','AC';'AD','AE'}
A =
'AB' 'AC'
'AD' 'AE'
>> B = cellfun(@double,A,'uni',0)
B =
[65,66] [65,67]
[65,68] [65,69]
>> C = cellfun(@char,B,'uni',0)
C =
'AB' 'AC'
'AD' 'AE'
  1 件のコメント
Raed Alahmadi
Raed Alahmadi 2019 年 1 月 14 日
Thanks for your help I used your method it is good but I face some other problems in my code so I change it slightly. Thanks

サインインしてコメントする。

その他の回答 (1 件)

Steven Lord
Steven Lord 2019 年 1 月 12 日
If I understand your goal correctly, use the unique function.
sampleWords = {'apple', 'banana', 'cherry'};
n = numel(sampleWords);
data = sampleWords(randi(n, 1, 10))
[uniqueWords, generateUniqueWordsFromData, generateDataFromUniqueWords] = unique(data);
data2 = uniqueWords(generateDataFromUniqueWords)
isequal(data, data2)
  1 件のコメント
Raed Alahmadi
Raed Alahmadi 2019 年 1 月 14 日
Thanks for your help I used other method to do it but I think I will need also your code in my code. thanks a lot

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by