Кажется, что это объясняет это.
Определение
order
состоит в том, чтоa[order(a)]
находится в порядке возрастания. Это работает с вашим примером, где правильный порядок - это четвертый, второй, первый, затем третий элемент.Возможно, вы искали
rank
, который возвращает ранг элементовR> a <- c(4.1, 3.2, 6.1, 3.1)
R> order(a)
[1] 4 2 1 3
R> rank(a)
[1] 3 2 4 1
, поэтомуrank
сообщает вам, в каком порядке находятся числа,order
сообщает вам, как получить их в порядке возрастания.
plot(a, rank(a)/length(a))
даст график CDF. Чтобы понять, почемуorder
полезен, попробуйтеplot(a, rank(a)/length(a),type="S")
, который дает беспорядок, потому что данные не в порядке возрастанияЕсли вы сделали
blockquote>oo<-order(a)
plot(a[oo],rank(a[oo])/length(a),type="S")
или простоoo<-order(a)
plot(a[oo],(1:length(a))/length(a)),type="S")
вы получите линейный график CDF.Готов поспорить, вы думаете о ранге.
Мое предположение - то, что byteArrayIn
не содержит допустимые данные изображения.
дайте больше информации хотя:
byteArrayIn
от, и действительно ли Вы уверены, что это должно содержать действительное изображение? Какая строка выдача является исключением? new MemoryStream(...)
? или Image.FromStream(...)
? И что byteArrayIn
? Действительно ли это byte[]
? Я только спрашиваю из-за комментария, "И ни одно из значения в нем не больше, чем 255" - который, конечно, является автоматическим для byte[]
.
Как более очевидный вопрос: двоичный файл на самом деле содержит изображение в разумном формате?
, Например, следующее (хотя не большой код) хорошо работает:
byte[] data = File.ReadAllBytes(@"d:\extn.png"); // not a good idea...
MemoryStream ms = new MemoryStream(data);
Image img = Image.FromStream(ms);
Console.WriteLine(img.Width);
Console.WriteLine(img.Height);
У меня была такая же проблема, и, по-видимому, она теперь решена, несмотря на то, что это и некоторые другие исключения gdi + вводят в заблуждение, я обнаружил, что на самом деле проблема заключалась в том, что параметр, отправляемый в конструктор Bitmap, не был действительный. У меня есть этот код:
using (System.IO.FileStream fs = new System.IO.FileStream(inputImage, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite))
{
try
{
using (Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false))
{
try
{
bitmap.Save(OutputImage + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
GC.Collect();
}
catch (Exception ex)
{
throw ex;
}
}
}
catch (ArgumentException aex)
{
throw new Exception("The file received from the Map Server is not a valid jpeg image", aex);
}
}
Следующая строка вызвала ошибку:
Bitmap bitmap = (Bitmap)Image.FromStream(fs, true, false)
Файловый поток был создан из файла, загруженного с Map Server. Мое приложение неправильно отправляло запрос на получение изображения, и сервер возвращал что-то с расширением jpg, но на самом деле это был html, сообщающий мне, что произошла ошибка. Итак, я взял это изображение и попытался построить с ним растровое изображение. Исправление заключалось в том, чтобы контролировать / проверять правильность изображения в формате jpeg.
Надеюсь, это поможет!