|
1 | | -function jdata=jdencode(data, varargin) |
| 1 | +function jdata=jdataencode(data, varargin) |
2 | 2 | % |
3 | | -% jdata=jdencode(data) |
| 3 | +% jdata=jdataencode(data) |
4 | 4 | % or |
5 | | -% jdata=jdencode(data, options) |
6 | | -% jdata=jdencode(data, 'Param1',value1, 'Param2',value2,...) |
| 5 | +% jdata=jdataencode(data, options) |
| 6 | +% jdata=jdataencode(data, 'Param1',value1, 'Param2',value2,...) |
7 | 7 | % |
8 | 8 | % Serialize a MATLAB struct or cell array into a JData-compliant |
9 | 9 | % structure as defined in the JData spec: http://github.com/fangq/jdata |
|
19 | 19 | % total element count is larger than this number. |
20 | 20 | % |
21 | 21 | % example: |
22 | | -% jd=jdencode(struct('a',rand(5)+1i*rand(5),'b',[],'c',sparse(5,5))) |
| 22 | +% jd=jdataencode(struct('a',rand(5)+1i*rand(5),'b',[],'c',sparse(5,5))) |
23 | 23 | % |
24 | 24 | % license: |
25 | 25 | % BSD or GPL version 3, see LICENSE_{BSD,GPLv3}.txt files for details |
|
55 | 55 | newitem=mat2jd(item,varargin{:}); |
56 | 56 | elseif(isa(item,'table')) |
57 | 57 | newitem=table2jd(item,varargin{:}); |
58 | | -elseif(isa(item,'digraph')) |
| 58 | +elseif(isa(item,'digraph') || isa(item,'graph')) |
59 | 59 | newitem=graph2jd(item,varargin{:}); |
60 | 60 | else |
61 | 61 | newitem=any2jd(item,varargin{:}); |
|
164 | 164 | function newitem=graph2jd(item,varargin) |
165 | 165 | newitem=struct; |
166 | 166 | nodedata=table2struct(item.Nodes); |
167 | | -if(any(ismember(G.Edges.Properties.VariableNames,'Name'))) |
| 167 | +if(isfield(nodedata,'Name')) |
168 | 168 | nodedata=rmfield(nodedata,'Name'); |
169 | | - newitem(N_('_GraphNodes_'))=containers.Map(item.Nodes.Name,num2cell(nodedata),'uniformValues',false); |
| 169 | + newitem.(N_('_GraphNodes_'))=containers.Map(item.Nodes.Name,num2cell(nodedata),'uniformValues',false); |
170 | 170 | else |
171 | | - newitem(N_('_GraphNodes_'))=containers.Map(1:max(item.Edges.EndNodes(:)),num2cell(nodedata),'uniformValues',false); |
| 171 | + newitem.(N_('_GraphNodes_'))=containers.Map(1:max(item.Edges.EndNodes(:)),num2cell(nodedata),'uniformValues',false); |
172 | 172 | end |
173 | | -newitem(N_('_GraphEdges_'))=num2cell(table2cell(item.Edges),2); |
| 173 | +edgenodes=item.Edges.EndNodes; |
| 174 | +edgedata=table2struct(item.Edges); |
| 175 | +if(isfield(edgedata,'EndNodes')) |
| 176 | + edgedata=rmfield(edgedata,'EndNodes'); |
| 177 | +end |
| 178 | +edgenodes(:,3)=num2cell(edgedata); |
| 179 | +newitem.(N_('_GraphEdges_'))=edgenodes; |
174 | 180 |
|
175 | 181 | %%------------------------------------------------------------------------- |
176 | 182 | function newname=N_(name,varargin) |
|
0 commit comments