|
101 | 101 | end |
102 | 102 | else |
103 | 103 | if(iscell(data(j).(N_('_ArrayData_')))) |
104 | | - data(j).(N_('_ArrayData_'))=cell2mat(cellfun(@(x) double(x(:)),data(j).(N_('_ArrayData_')),'uniformoutput',0)); |
| 104 | + data(j).(N_('_ArrayData_'))=cell2mat(cellfun(@(x) double(x(:)),data(j).(N_('_ArrayData_')),'uniformoutput',0)).'; |
105 | 105 | end |
106 | 106 | ndata=cast(data(j).(N_('_ArrayData_')),data(j).(N_('_ArrayType_'))); |
107 | 107 | end |
108 | 108 | iscpx=0; |
109 | | - needtranspose=0; |
110 | 109 | if(~isempty(strmatch(N_('_ArrayIsComplex_'),fn))) |
111 | 110 | if(data(j).(N_('_ArrayIsComplex_'))) |
112 | 111 | iscpx=1; |
113 | | - needtranspose=islogical(data(j).(N_('_ArrayIsComplex_'))); |
114 | 112 | end |
115 | 113 | end |
116 | 114 | if(~isempty(strmatch(N_('_ArrayIsSparse_'),fn)) && data(j).(N_('_ArrayIsSparse_'))) |
117 | 115 | if(islogical(data(j).(N_('_ArrayIsSparse_')))) |
118 | | - needtranspose=1; |
119 | 116 | end |
120 | 117 | if(~isempty(strmatch(N_('_ArraySize_'),fn))) |
121 | 118 | dim=double(data(j).(N_('_ArraySize_'))(:)'); |
122 | | - if(iscpx && size(ndata,2)==4-any(dim==1)) |
123 | | - ndata(:,end-1)=complex(ndata(:,end-1),ndata(:,end)); |
| 119 | + if(iscpx) |
| 120 | + ndata(end-1,:)=complex(ndata(end-1,:),ndata(end,:)); |
124 | 121 | end |
125 | 122 | if isempty(ndata) |
126 | 123 | % All-zeros sparse |
127 | 124 | ndata=sparse(dim(1),prod(dim(2:end))); |
128 | 125 | elseif dim(1)==1 |
129 | 126 | % Sparse row vector |
130 | | - if(size(ndata,2)~=2 && size(ndata,1)==2) |
131 | | - ndata=ndata'; |
132 | | - end |
133 | | - ndata=sparse(1,ndata(:,1),ndata(:,2),dim(1),prod(dim(2:end))); |
| 127 | + ndata=sparse(1,ndata(1,:),ndata(2,:),dim(1),prod(dim(2:end))); |
134 | 128 | elseif dim(2)==1 |
135 | 129 | % Sparse column vector |
136 | | - if(size(ndata,2)~=2 && size(ndata,1)==2) |
137 | | - ndata=ndata'; |
138 | | - end |
139 | | - ndata=sparse(ndata(:,1),1,ndata(:,2),dim(1),prod(dim(2:end))); |
| 130 | + ndata=sparse(ndata(1,:),1,ndata(2,:),dim(1),prod(dim(2:end))); |
140 | 131 | else |
141 | 132 | % Generic sparse array. |
142 | | - if(size(ndata,2)~=3 && size(ndata,1)==3) |
143 | | - ndata=ndata'; |
144 | | - end |
145 | | - ndata=sparse(ndata(:,1),ndata(:,2),ndata(:,3),dim(1),prod(dim(2:end))); |
| 133 | + ndata=sparse(ndata(1,:),ndata(2,:),ndata(3,:),dim(1),prod(dim(2:end))); |
146 | 134 | end |
147 | 135 | else |
148 | 136 | if(iscpx && size(ndata,2)==4) |
149 | | - ndata(:,3)=complex(ndata(:,3),ndata(:,4)); |
| 137 | + ndata(3,:)=complex(ndata(3,:),ndata(4,:)); |
150 | 138 | end |
151 | | - ndata=sparse(ndata(:,1),ndata(:,2),ndata(:,3)); |
| 139 | + ndata=sparse(ndata(1,:),ndata(2,:),ndata(3,:)); |
152 | 140 | end |
153 | 141 | elseif(~isempty(strmatch(N_('_ArraySize_'),fn))) |
154 | | - if(needtranspose) |
155 | | - ndata=ndata'; |
156 | | - end |
157 | 142 | if(iscpx) |
158 | | - if(size(ndata,2)~=2 && size(ndata,1)==2) |
159 | | - ndata=ndata'; |
160 | | - end |
161 | | - ndata=complex(ndata(:,1),ndata(:,2)); |
| 143 | + ndata=complex(ndata(1,:),ndata(2,:)); |
162 | 144 | end |
163 | 145 | if(format>1.9) |
164 | 146 | data(j).(N_('_ArraySize_'))=data(j).(N_('_ArraySize_'))(end:-1:1); |
|
0 commit comments