Expected one output from a curly brace or dot indexing expression, but there were 2 results.
    6 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    SS
      
 am 13 Aug. 2019
  
    
    
    
    
    Kommentiert: Van Thai Pham
 am 2 Dez. 2020
            Hi.I working with a code to manipulate some data and here are the lines which gives error
S12(m).x2(n)=S2(tn4).x(ts4) % line 104
S12(m).dx2(n)=S2(tn4).dx(ts4) % line 105
S12(m).z(n)=S2(tn4).y(ts4) % line 106
The error is,
Expected one output from a curly brace or dot indexing expression, but there were 2 results.
Error in data_man (line 104)     S12(m).x2(n)=S2(tn4).x(ts4)
How can I fix this error?
3 Kommentare
Akzeptierte Antwort
  Bruno Luong
      
      
 am 13 Aug. 2019
        
      Bearbeitet: Bruno Luong
      
      
 am 13 Aug. 2019
  
      In general you are not allow to assign multi-level structures with non-scalar indexing in one shot, you need to do in 2 steps.
%  S12(m).x2(n)=S2(tn4).x(ts4)
x2 = {S12(m).x2};
x = {S2(tn4).x};
for k=1:length(x2)
    x2{k}(n) = x{k}(ts4);
end
[S12(m).x2] = deal(x2{:});
3 Kommentare
  Chuck Olosky
    
 am 2 Aug. 2020
				This approach worked for:
   names = {'a' 'b' 'c'};
   dStruct = repmat(struct('name',''),size(names));
   [dStruct.name] = deal(names{:});
Also works without "deal":
   [dStruct.name] = names{:};
In other threads, there are discussions regarding "deal" being unnecessary in later releases.
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Whos finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!