A Quickie: do I have to create a temp array in my code
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
Q? do I have to create the temp array 'abMt'. Can I rap 'TxTRIn{ii,2}(indx,2:5)' in max to get ans?
1 first I create an index of the section of the array I wish to find max
2 load required data into temp array
3 max(array(:)) returns absolute max for complete data set.
1 indx = (TxTRIn{ii,2}(:,1)>= 800) & (TxTRIn{ii,2}(:,1)<= 1500);
2 abMt = TxTRIn{ii,2}(indx,2:5);
3 abMax = max(abMt(:));
Thanks
0 comentarios
Respuesta aceptada
David Young
el 28 de Nov. de 2011
It looks as if TxTRIn{ii,2}(indx,2:5) is 2D. If that's correct, you can write
abMax = max(max(TxTRIn{ii,2}(indx,2:5)));
to avoid the temporary array. However, the way you have it now is probably clearer to read, and I doubt that it is any less efficient.
3 comentarios
Walter Roberson
el 28 de Nov. de 2011
And for max(reshape(...)) ?
There isn't much overhead for creating a temporary variable to store something that is already calculated. The overhead comes if you modify the temporary array. Using (:) to reshape to a column vector does not require modifying the temporary array, just creating a header with the dimensions changed but pointing to the same data block.
Más respuestas (1)
Walter Roberson
el 28 de Nov. de 2011
max(TxTRIn{ii,2}(indx,2:5)) is valid syntax, but it would give one maximum per column rather than an overall maximum.
It is not allowed use TxTRIn{ii,2}(indx,2:5)(:)
It is, though, allowed to use reshape(TxTRIn{ii,2}(indx,2:5),[],1)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!