how to create matrix with multiple column vectors?
2 ビュー (過去 30 日間)
古いコメントを表示
I have to create channel matrix for 16 users. each column contains information about channel of particular user.my matrix size will be 128x16
3 件のコメント
Stephen23
2018 年 2 月 21 日
"I have combine all 128x1 column vectors into single matrix for further implementation"
Storing them in one array right from the very beginning would be simpler, neater, and more efficient: most like this could be achieved using some basic indexing. Keep data together as much as possible always makes processing that data simpler.
回答 (1 件)
Pawel Jastrzebski
2018 年 2 月 21 日
編集済み: Pawel Jastrzebski
2018 年 2 月 21 日
Regarding 'information about channel of particular user':
- Is it all numerical values?
- Is it mixed data i.e. channel 1 holds a number and channel two a text?
In case 1, you can use a solution as simple as matrix or table to store your information.
Consider the following example:
NoOfUsers = 16;
NoOfChannels = 128;
% 1) MATRIX
% create an empty matrix
M_UserChannel(NoOfChannels,NoOfUsers) = 0;
% 2) TABLE
T_UserChannel = array2table(M_UserChannel);
% CREATE COLUMN NAMES and ROW NAMES
% preallocate memory for the user names
users{1,NoOfUsers} = [];
for i=1:NoOfUsers
users{1,i} = ['user' num2str(i)];
end
clear i;
% preallocate memory for the channel names
rows{1,NoOfChannels} = [];
for i=1:NoOfChannels
rows{1,i} = ['channel' num2str(i)];
end
T_UserChannel.Properties.VariableNames = users;
T_UserChannel.Properties.RowNames = rows;
clear i rows users;
If the data is mixed, you can still use Matlab's table to store the information, on condition that:
- Users are stored in rows
- Channel information is stored in column (as columns within one table can hold data of various types - as long as you stick to one data type per column)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!