Why doesn't this matlab code work?!
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Ahmad
 el 3 de En. de 2015
  
    
    
    
    
    Comentada: Image Analyst
      
      
 el 3 de En. de 2015
            s={'CCCAGCTCCCGAATTCCCCAGCTA'}; 
rec={'AG^CT'}; 
x=strfind(rec,'^');
y=rec;
y(x)=[]
I get:
Error using subsindex Function 'subsindex' is not defined for values of class 'cell'.
Error in Untitled555555 (line 5) y(x)=[]
0 comentarios
Respuesta aceptada
  Stephen23
      
      
 el 3 de En. de 2015
        
      Editada: Stephen23
      
      
 el 3 de En. de 2015
  
      Because x is a cell array, and you are trying to use this to index into the variable y, which is not supported in MATLAB (indices must be numeric or logical). If you have a look in your workspace you will find that all of your variables are in fact cell arrays... is this intentional? Depending on your application it may be unnecessary to use cell arrays at all:
s = 'CCCAGCTCCCGAATTCCCCAGCTA';
rec = 'AG^CT';
x = strfind(rec,'^');
y = rec;
y(x)=[];
using no cell arrays, and works without error. If you think you really do need to use cell arrays, please post more details of what you are trying to achieve and we can help you further with the best way to code it using MATLAB.
These might be of interest:
0 comentarios
Más respuestas (3)
  Image Analyst
      
      
 el 3 de En. de 2015
        then try this:
rec={'AG^CT'}; 
x=strfind(char(rec),'^')
y=rec
y{1}(x)=[]
0 comentarios
  Ahmad
 el 3 de En. de 2015
        1 comentario
  Image Analyst
      
      
 el 3 de En. de 2015
				Your error doesn't match your code. In the strfind, do you have y or {y} ? And if it's {y}, then why???
Say, did you ever look at the FAQ link I gave you? Please do. I gave it to you because I think it will help you understand cell arrays. If you can't understand the FAQ, let me know and I'll clarify it.
  Ahmad
 el 3 de En. de 2015
        1 comentario
  Image Analyst
      
      
 el 3 de En. de 2015
				Not sure you do understand cells yet because you'd know that y{1} means "contents of the first cell of y". So y is a cell or a cell array (a columns or row vectors). Then 1 means take the first cell in the row, or first cell in the column, and get the contents of it, which could be virtually anything - a string, a structure, a double, an image, even another cell. In your case y is a cell array where the cells contain strings, so y{1} is a string.
Ver también
Categorías
				Más información sobre Characters and Strings en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


