Using a containers.Map to find values
10 ビュー (過去 30 日間)
古いコメントを表示
Hello, so I have a 35x1 cell array that contains a table of data for every day. The cell array looks like "[1501x6 table, 1501x6 table....ETC]". In addition, I also have a containers.map based off of a 12000x2 excel pull in. My objective is to insert a 7th column in every table (or cell of the cell array), in which every cell of the table corresponds to the value assigned in the map (using the 4th column as the keys). How do I do this? I've used a for loop to no avail. My idea for code was:
For I:numel(data) data{I}=[data(:,6) values{i}(map,{data(:,4)}] end
0 件のコメント
採用された回答
Sudhanshu Bhatt
2015 年 7 月 24 日
編集済み: Sudhanshu Bhatt
2015 年 7 月 24 日
Hi Xander,
I am assuming that you have the data you want to insert into the table as 7th column.
For this example we will consider the following structure:
TableName T1 ; Columns: Age,Height,Weight,BloodPressure,LastName
TableName T2 ; Columns: Age,Height,Weight,BloodPressure,LastName
CellArray tableAsCells; Rows: (Table T1); (Table T2)
NewColumn Smoker: {'Yes';'Yes';'Yes';'No';'No'};
There are two approaches to adding a column to an existing table as listed below:
Approach 1: Appending the new column to the pre-existing table:
Step 1: Fetch a Table from the cell array :
>> grabATable = tableAsCells{1};
Step 2: Add column to this table :
>> T1 = [T1, Smoker];
>> T1.Properties.VariableNames(6) = {'Smoker'};
Approach 2: Creating a temporary table and concatenating it to the original table :
Step 1: Fetch a Table from the cell array :
>> grabATable = tableAsCells{1};
Step 2: Add column to this table :
>> newTable = table(Smoker);
>> T1 = [T1,newTable];
Below are the steps to add key and value objects to the Existing container.Map object:
Step 1: Creating new key and Value pairs :
>> newKeyValueSets = {'PlaceHolder1', 'PlaceHolder2', 'PlaceHodler3', 'PlaceHoler4' };
>> newValueSets = {100,110,120,130};
Step 2: Creating a new Map object :
>> newMapObj = containers.Map(newKeyValueSets,newValueSets);
Step 3: Concatenate the two map objects into the original object :
>> mapObj = [mapObj; newMapObj];
More information on concatenating values to map objects can be found in the documentation link below:
Hope this helps.
Thanks
Sudhanshu Bhatt
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Graphics Object Programming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!