ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

minccalc - ออนไลน์ในคลาวด์

เรียกใช้ minccalc ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง minccalc ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


minccalc - ดำเนินการทางคณิตศาสตร์ที่ซับซ้อนในไฟล์ minc

เรื่องย่อ


แคลต่ำ [ ] .mnc [ .mnc...] .mnc

DESCRIPTION


มินคาแอล จะทำการคำนวณทางคณิตศาสตร์แบบ voxel-by-voxel ที่ซับซ้อน บนไฟล์ minc หนึ่งไฟล์ขึ้นไป
ที่มีรูปร่างเหมือนกันและมีการสุ่มตัวอย่างพิกัดเหมือนกัน ทำให้เกิดไฟล์เอาต์พุตเดียว
การดำเนินการที่จะดำเนินการคือการป้อนข้อมูลโดยใช้ - การแสดงออก อาร์กิวเมนต์ (ดู การแสดงออก).
โดยค่าเริ่มต้น ไฟล์เอาต์พุตคืออาร์กิวเมนต์ที่ไม่มีตัวเลือกสุดท้าย อย่างไรก็ตาม หาก -outfile
ใช้ตัวเลือก จากนั้นอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกทั้งหมดจะถือเป็นไฟล์อินพุตและเอาต์พุต
ชื่อไฟล์มาจาก -outfile ตัวเลือกซึ่งสามารถมีได้มากกว่าหนึ่งตัวเลือก

OPTIONS


โปรดทราบว่าตัวเลือกสามารถระบุในรูปแบบย่อได้ (ตราบใดที่ไม่ซ้ำกัน) และ
สามารถให้ที่ใดก็ได้บนบรรทัดคำสั่ง

-2 สร้างไฟล์เอาต์พุตรูปแบบ MINC 2.0

-ช่วยด้วย พิมพ์สรุปตัวเลือกบรรทัดคำสั่งและออก

-version
พิมพ์หมายเลขเวอร์ชันของโปรแกรมและออก

-ทุบ
เขียนทับไฟล์ที่มีอยู่

-Noclobber
อย่าเขียนทับไฟล์ที่มีอยู่ (ค่าเริ่มต้น)

-no_clobber
คำพ้องความหมายสำหรับ -noclobber

-รายละเอียด
พิมพ์ข้อมูลความคืบหน้าสำหรับแต่ละกลุ่มข้อมูลที่คัดลอก (ค่าเริ่มต้น)

-เงียบ อย่าพิมพ์ข้อมูลความคืบหน้า

-debug พิมพ์ข้อมูลการดีบัก

-copy_header
คัดลอกข้อมูลส่วนหัวทั้งหมดจากไฟล์อินพุตแรก (ค่าเริ่มต้นสำหรับอินพุตเดียว
แฟ้ม)

-nocopy_header
อย่าคัดลอกส่วนหัวทั้งหมดจากไฟล์อินพุตแรก คัดลอกเฉพาะพิกัด
ข้อมูล (ค่าเริ่มต้นสำหรับไฟล์อินพุตมากกว่าหนึ่งไฟล์)

-ประเภทไฟล์
สร้างไฟล์เอาต์พุตที่มีประเภทเดียวกับไฟล์อินพุตแรก (ค่าเริ่มต้น)

-ไบต์ จัดเก็บ voxels เอาต์พุตในรูปแบบจำนวนเต็ม 8 บิต

-สั้น จัดเก็บ voxels เอาต์พุตในรูปแบบจำนวนเต็ม 16 บิต

-int จัดเก็บ voxels เอาต์พุตในรูปแบบจำนวนเต็ม 32 บิต

-ยาว แทนที่โดย -int.

-ลอย เก็บเอาต์พุต voxels ในรูปแบบทศนิยม 32 บิต

-Double
เก็บเอาต์พุต voxels ในรูปแบบทศนิยม 64 บิต

-ลงนาม
ใช้รูปแบบจำนวนเต็มเสริมสองแบบที่ลงนามแล้ว ใช้เฉพาะในกรณีที่เอาต์พุต voxel type
ถูกกำหนดให้เป็นประเภทจำนวนเต็ม (หนึ่งใน -ไบต์, -สั้น, -int or -ยาว).

-ไม่ได้ลงนาม
ใช้รูปแบบจำนวนเต็มไม่มีเครื่องหมาย ใช้เฉพาะในกรณีที่ระบุประเภทเอาต์พุต voxel เป็น
เป็นประเภทจำนวนเต็ม (หนึ่งใน -ไบต์, -สั้น, -int or -ยาว).

-พิสัย นาที แม็กซ์
จำกัดช่วงที่ถูกต้องของข้อมูลจำนวนเต็ม ใช้เฉพาะในกรณีที่ -ไบต์,
-สั้น, -int or -ยาว มีการระบุตัวเลือก

-max_buffer_size_in_kb ขนาด
ระบุขนาดสูงสุดของบัฟเฟอร์ภายใน (เป็น kbytes) ค่าเริ่มต้นคือ4096
(4MB)

-Dimension สลัว
ระบุมิติที่เราต้องการดำเนินการสะสม

-ตรวจสอบ_ขนาด
ตรวจสอบว่าไฟล์อินพุตทั้งหมดมีการสุ่มตัวอย่างที่ตรงกันในมิติของโลก (ค่าเริ่มต้น)

-nocheck_ขนาด
ละเว้นความแตกต่างใดๆ ในการสุ่มตัวอย่างมิติของโลกสำหรับไฟล์อินพุต

-propagate_nan
สำหรับการดำเนินการเวกเตอร์สะสม (รวม, แยง และ เฉลี่ย) ข้อมูลที่ไม่ถูกต้อง (Not-A-Number
หรือ NaN) ในองค์ประกอบใด ๆ ของเวกเตอร์จะสร้างข้อมูลที่ไม่ถูกต้องในผลลัพธ์
(ค่าเริ่มต้น).

-ignore_nan
สำหรับการดำเนินการเวกเตอร์สะสม ข้อมูลที่ไม่ถูกต้อง (NaN) ในเวกเตอร์จะถูกละเว้น กล่าวคือ
ถือว่าไม่มีอยู่จริง

- แนน เมื่อมีการพยายามดำเนินการที่ผิดกฎหมายที่ voxel (เช่นหารด้วยศูนย์) the
ผลลัพธ์เป็นข้อมูลที่ไม่ถูกต้อง (NaN) (ค่าเริ่มต้น) ไม่มีข้อมูลอินพุตที่ถูกต้องสำหรับสะสม
การดำเนินการยังถือเป็นการดำเนินการที่ผิดกฎหมายเมื่อ -ignore_nan ถูกนำมาใช้.

-ศูนย์ เมื่อมีการพยายามดำเนินการที่ผิดกฎหมายที่ voxel (เช่นหารด้วยศูนย์) the
ผลลัพธ์คือค่าศูนย์

-illegal_value ความคุ้มค่า
เมื่อมีการพยายามดำเนินการที่ผิดกฎหมายที่ voxel (เช่นหารด้วยศูนย์) the
ผลลัพธ์คือค่าที่ระบุโดยตัวเลือกนี้

- การแสดงออก เชือก
ระบุนิพจน์เพื่อประเมินในแต่ละ voxel (ดู EXPRESSIONS)

-expfile ชื่อไฟล์
ระบุไฟล์ที่มีนิพจน์เพื่อประเมินในแต่ละ voxel (ดู
นิพจน์). หากระบุชื่อไฟล์ ``-'' นิพจน์จะถูกอ่านจาก stdin
ข้อแตกต่างเพียงอย่างเดียวจากนิพจน์บรรทัดคำสั่งคือสามารถให้ความคิดเห็นใน
ไฟล์. บรรทัดความคิดเห็นถูกระบุโดยการวาง ``#'' เป็นบรรทัดแรกที่ไม่ใช่
อักขระช่องว่างของบรรทัด สคริปต์ Minccalc สามารถสร้างได้โดยการตั้งค่า
บรรทัดแรกถึง

#! /usr/local/mni/bin/minccal -expfile

-outfile เครื่องหมาย ไฟล์เอาต์พุต
ระบุว่าควรเขียนเอาต์พุตไปยังไฟล์ที่ระบุโดยรับค่าจาก
สัญลักษณ์ที่ควรสร้างขึ้นในนิพจน์ (ดู ตัวอย่าง ส่วน). ถ้า
ให้ตัวเลือกนี้ จากนั้นอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกทั้งหมดจะถูกนำมาเป็นไฟล์อินพุต นี้
สามารถใช้ตัวเลือกได้หลายครั้งสำหรับไฟล์ที่ส่งออกหลายไฟล์

-eval_width ความคุ้มค่า
ระบุจำนวน voxels ที่จะประมวลผลแบบขนาน ค่าเริ่มต้นคือ 200

การแสดงออก


พื้นที่ - การแสดงออก อาร์กิวเมนต์เป็นสตริงเดียวที่อธิบายฟังก์ชันที่จะประเมิน NS
โดยทั่วไป นิพจน์ของฟังก์ชันจะเขียนในรูปของเวกเตอร์ A

ตัวอย่างเช่น นิพจน์ต่อไปนี้จะรวมไฟล์อินพุตสองไฟล์แรกเข้าด้วยกัน:

เอ[0] + เอ[1]

สามารถกำหนดได้หลายนิพจน์คั่นด้วยเครื่องหมายอัฒภาค ซึ่งในกรณีนี้ เฉพาะค่าของ
ใช้นิพจน์สุดท้าย รายการนิพจน์เหล่านี้สามารถใช้กับการมอบหมายได้
นิพจน์เพื่อให้ไวยากรณ์เหมือน C มาก:

อัตราส่วน = A[0]/A[1]; A[2]*exp(-อัตราส่วน)

รายการนิพจน์ในวงเล็บปีกกาเป็นนิพจน์ที่ถูกต้องและส่งกลับค่าของlast
การแสดงออกในรายการ สิ่งนี้มีประโยชน์อย่างยิ่งใน for และ if นิพจน์ (ดูด้านล่าง)

ค่าในภาษามีสองประเภท: เวกเตอร์และสเกลาร์ ตัวอักษรสเกลาร์คือ
เลขทศนิยมหรืออาจปรากฏเป็นสัญลักษณ์ที่ชื่อขึ้นต้นด้วยตัวพิมพ์เล็ก

นอกจากตัวดำเนินการสเกลาร์ปกติ เช่น +, -, * และ / ภาษานิพจน์ก็เช่นกัน
รองรับตัวดำเนินการยกกำลัง infix ^ ตัวดำเนินการเชิงสัมพันธ์ปกติ <, <=, >,
>=, ==, != เช่นเดียวกับตัวดำเนินการบูลีน && (และ), || (หรือ) และ ! (ไม่). โปรดทราบว่า
&& และ || ตัวดำเนินการบูลีนจะประเมินตัวถูกดำเนินการทั้งสองเสมอ ไม่เหมือน C. Scalar mathematical
รวมถึงฟังก์ชันต่างๆ เอบีเอส, ตร.ว, ประสบการณ์, เข้าสู่ระบบ, บาป, เกวียน, สีน้ำตาล, อาซิน, เอคอส และ Atan. นอกจากนี้ยังมี
ฟังก์ชั่นพิเศษบางอย่าง:

isnan(v) - 1 ถ้า v ไม่ถูกต้องและ 0 มิฉะนั้น
แคลมป์(v1,v2,v3) - v1 ล้อมรอบด้วย [v2, v3]
เซ็กเมนต์ (v1,v2,v3) - ทดสอบว่า v1 อยู่ใน [v2, v3]

ค่าคงที่สเกลาร์ NaN ถูกกำหนดให้ isnan(NaN) คืนค่า 1

เวกเตอร์สามารถเขียนได้ในรูปแบบ "ส่วนขยาย" ต่อไปนี้

[ ค่า 1 ค่า 2 ... ]

หรือโดยใช้สัญลักษณ์สร้างช่วงต่อไปนี้:

[ a : b ] สร้าง {a, a+1, ..., b-1, b}
[ a : b ) สร้าง {a, a+1, ..., b-1}
( a : b ] สร้าง {a+1, ..., b-1, b}
( a : b ) สร้าง {a+1, ..., b-1}

หรือสร้างขึ้นโดย 'เจตนา' นิพจน์ความตั้งใจต่อไปนี้สร้าง vector
{3,2,1}:

{ ใน [1:3] | 4 - ฉัน }

เวกเตอร์อาจปรากฏเป็นสัญลักษณ์ที่มีชื่อขึ้นต้นด้วยตัวพิมพ์ใหญ่

นอกจากตัวดำเนินการสเกลาร์แล้ว ยังมีตัวดำเนินการเวกเตอร์ต่อไปนี้อีกด้วย:

เฉลี่ย - ค่าเฉลี่ยของสเกลาร์ในเวกเตอร์
len - ความยาวของ
sum - ผลรวมขององค์ประกอบของ
prod - ผลิตภัณฑ์ขององค์ประกอบของ
max - ค่าสูงสุดของ
min - ค่าต่ำสุดของ
imax - ดัชนีของค่าสูงสุดของ
imin - ดัชนีของค่าต่ำสุดของ
V[s] - องค์ประกอบที่ s'ของเวกเตอร์ V ที่มีจุดกำเนิด 0

ชื่อสัญลักษณ์ถูกนำมาใช้ในตารางสัญลักษณ์สากลโดยนิพจน์การกำหนดของ
ฟอร์ม

เอ = เอ[2] * เข้าสู่ระบบ(2)

สัญลักษณ์ที่ขึ้นต้นด้วยตัวพิมพ์เล็กแสดงถึงสเกลาร์ในขณะที่สัญลักษณ์ที่ขึ้นต้นด้วย an
ตัวพิมพ์ใหญ่แสดงถึงเวกเตอร์ เนื่องจาก = เป็นโอเปอเรเตอร์ จึงสามารถใช้ผลลัพธ์เป็น an
นิพจน์ (เช่นใน C)

มีการจัดโครงสร้างการควบคุมบางส่วน:

สำหรับลูปสามารถสร้างขึ้นเพื่อวนซ้ำบนเวกเตอร์โดยกำหนดค่าแต่ละค่าให้กับสัญลักษณ์แล้ว
การประเมินการแสดงออก ทำได้ด้วยนิพจน์ของแบบฟอร์ม

รวม=0; สำหรับ{i ใน [0:len(A))} total=total+A[i]; ทั้งหมด

ซึ่งเท่ากับผลรวม (A) โปรดทราบว่าสิ่งนี้คล้ายกับการใช้

รวม=0; len{i ใน [0:len(A)) | รวม=ทั้งหมด+A[i]}; ทั้งหมด

ตั้งแต่ for construct เป็นโอเปอเรเตอร์จริง ๆ (แม้ว่าโดยทั่วไปจะใช้สำหรับ .เท่านั้น
เปลี่ยนค่าสัญลักษณ์) โปรดทราบว่าหากไม่มี "ผลรวม" สุดท้าย นิพจน์จะ
ไม่ได้มีประโยชน์มากนักเพราะมันจะส่งกลับเฉพาะความยาวของเวกเตอร์เท่านั้น

เช่นเดียวกับใน C รายการนิพจน์สามารถระบุเป็นลอนได้:

ทั้งหมด=รวม2 = 0;
สำหรับ {i ใน [0:len(A))} {
รวม = รวม + A[i];
ทั้งหมด 2 = ทั้งหมด 2 + A[i]^2
}

นอกจากนี้ยังมีรูปแบบบางอย่างของ ถ้า - แล้ว - อื่น สร้าง:

เอ[0]<0 ? 0 : เอ[0]

ถ้า (A[0]<0) ผลลัพธ์=0 อื่น ๆ ผลลัพธ์=A[0]

พื้นที่ อื่น เป็นทางเลือก อีกครั้ง if construct เป็นโอเปอเรเตอร์ และ แล้วก็ or อื่น
นิพจน์สามารถเป็นรายการนิพจน์ใน curlies ซึ่งในกรณีนี้ค่าของlast
นิพจน์จะถูกส่งกลับ ถ้า อื่น นิพจน์หายไป จากนั้นค่า 0 จะถูกส่งกลับ
เมื่อนิพจน์การทดสอบเป็น 0 (เท็จ)

ความแปลกประหลาดหลักกับ for และ if โครงสร้างนั้นแตกต่างจากคำสั่ง C พวกเขาจะต้อง
แยกออกจากนิพจน์ถัดไปด้วยเครื่องหมายอัฒภาคแม้ว่านิพจน์จะแสดงรายการใน
ใช้หยิก:

สำหรับฉันใน [0:len(A)) {total=total+A[i]} ; รวม/เลน(A)
ถ้า (A[i]>0) {result=2;} อื่น {result=1} ; ผลลัพธ์*5

วิธีอื่นในการแนะนำชื่อสัญลักษณ์คือผ่าน ให้-นิพจน์ ตัวอย่างเช่น
นิพจน์ต่อไปนี้จะประเมินเป็น 3:

ให้ a = 1, b = 2 ใน a + b

แต่เดิมออกแบบมาเพื่อสร้างตัวแปรภายในนิพจน์ที่ประเมินเท่านั้น
แต่มีการปรับเปลี่ยนเพื่อให้ตารางสัญลักษณ์สากลมีการเปลี่ยนแปลง

ตัวอย่าง


นี่คือนิพจน์สำหรับการคำนวณค่าเบี่ยงเบนมาตรฐานโดยคำนึงถึง
ความเป็นไปได้ของข้อมูลที่ป้อนไม่ถูกต้อง ซึ่งถูกละเว้น:

s0 = s1 = s2 = 0;

สำหรับ { ใน [0:len(A)) } {
v=A[ผม];
ถ้า (!isnan(v)) {
s0 = s0 + 1;
s1 = s1 + โวลต์;
s2 = s2 + วี*วี;
}
};

ถ้า (s0 > 1) {
sqrt((s2 - s1*s1/s0) / (s0-1));
}
else {
น่าน;
};

สุดท้าย if สามารถเปลี่ยนเป็น 0 ถ้า s0 เป็น > 0 แต่ <= 1 เรายังปล่อย curl
วงเล็บ แต่ต้องไม่มี ";" ระหว่าง if และ else

ถ้า (s0 > 1)
sqrt((s2 - s1*s1/s0) / (s0-1))
อื่นถ้า (s0 > 0)
0
อื่น
น่าน

หากเราต้องการทั้งค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐาน เราก็สามารถใช้ -outfile ตัวเลือก
เรียกใช้คำสั่งด้วย

minccalc -expfile stdev \
-outfile หมายถึง mean.mnc \
-outfile stdev stdev.mnc \
infile1.mnc infile2.mnc ...

และการใช้ไฟล์นิพจน์ (ด้วยนิพจน์ if อีกรูปแบบหนึ่ง):

s0 = s1 = s2 = 0;

สำหรับ {i ใน [0:len(A))} {
v=A[ผม];
ถ้า (!isnan(v)) {
s0 = s0 + 1;
s1 = s1 + โวลต์;
s2 = s2 + วี*วี;
}
};

stdev = (s0 > 1) ? sqrt((s2 - s1*s1/s0) / (s0-1)) :
(s0 > 0) ? 0 : น่าน ;
ค่าเฉลี่ย = (s0 > 0) ? s1 / s0 : น่าน ;

คำเตือน


บางสิ่งที่คุณควรจำ...

ตัวแปรเวกเตอร์ต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่

ชื่อตัวแปรเวกเตอร์ต้องไม่เป็นหนึ่งในคีย์เวิร์ดของฟังก์ชัน
sum, len, prod, ... ฯลฯ

สำหรับลูปและถ้านิพจน์ต้องแยกจากนิพจน์ถัดไปด้วย a . เสมอ
อัฒภาค.

ตารางสัญลักษณ์เป็นแบบโกลบอล

ตัวดำเนินการบูลีน && และ || ประเมินตัวถูกดำเนินการทั้งสองเสมอ

หมายเหตุเกี่ยวกับการขนานกัน: ด้วยเหตุผลด้านประสิทธิภาพ การประเมินจะทำใน voxels จำนวนมากพร้อมกัน
(จำนวน voxels เรียกว่าความกว้างของการประเมินและเปลี่ยนด้วย
-eval_width ตัวเลือก). ผลที่แปลกประหลาดก็คือว่าทั้งสองข้างของ if-else
คำสั่งจะถูกประเมินเสมอ (เว้นแต่ voxels ทั้งหมดจะให้ผลการทดสอบเหมือนกัน) แต่
ข้อความในแต่ละผลที่ตามมาจะได้รับการประเมินเฉพาะในว็อกเซลที่เหมาะสมเท่านั้น ใน
โดยเฉพาะอย่างยิ่ง รายการในตารางสัญลักษณ์จะได้รับการแก้ไขตามรูปแบบ voxel เท่านั้น NS
ผลข้างเคียงของสิ่งนี้คือสัญลักษณ์เวกเตอร์ใด ๆ ที่ตั้งค่าเป็น if-else จะต้องไม่เปลี่ยนแปลง
ความยาวของสัญลักษณ์ (แม้ว่าจะสามารถสร้างได้) และทั้งสองด้านของผลที่ตามมาจะต้อง
เห็นด้วยกับความยาวของสัญลักษณ์เวกเตอร์ที่ทั้งคู่แก้ไข หากไม่ชัดเจน
แค่ลอง - โปรแกรมจะบ่นถ้ามันไม่มีความสุข

ใช้ minccalc ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad