게으른맽랩 lazy matlab

https://lazymatlab.tistory.com/

게으른맽랩 lazy matlab

피드

포스팅 대표 그림
(펌) Python Clean Code
게으른맽랩 lazy matlab
윤쌤 (지행사)원문: https://testdriven.io/blog/clean-code-python/ [Clean Code in PythonThis article looks at how to write clean code in Python.testdriven.io](https://testdriven.io/blog/clean-code-python/)내용은 일부 생략했습니다.PEP 8Naming클래스명은 CamelCase로 한다. (MyClass)변수명, 함수명, 모듈명은 snake_case로 한다. (first_name, quick_sort(), numpy)상수는 대문자 snake_case로 한다. (PI = 3.14159)문자열을 작은 따옴표로 할지 큰 따옴표로 할지는 일관성만 갖추면 된다. Line formatting들여쓰기는 4칸이다. 탭보다 스페이스가 선호된다.한 줄은 79칸을 넘지 않는다.한 줄에 여러 statement를 적지 않는다.Top-level 함수와 클래스 정의는 앞뒤로 두 줄의 공백을 둔다.클래스 내에서 메서드 정의는 앞뒤로 한 줄의 공백을 둔다.서로 다른 모듈의 import는 줄을 분리한다. Whitespace[]과 {} 내에서는 불필요한 공백을 넣지 않는다. 줄 끝에 공백을 넣지 않는다. 이항 연산자 양쪽에 공백을 하나씩 넣는다. 키워드 인자를 지정할 때에는 = 앞뒤로 공백을 넣지 않는다. Comments주석은 코드와 모순되지 않아야 한다. 주석은 완성된 문장이어야 한다. 주석을 쓸 때 # 뒤에 공백이 하나 있어야 한다. 독스트링은 첫 줄에 요약 문장을 쓰고, 그 다음에 추가 설명을 붙인다. The Zen of Python아름다운 것이 추한 것보다 낫다. (Beautiful is better than ugly.)명시적인 것이 암묵적인 것보다 낫다. (Explicit is better than implicit.)간결한 것이 복잡한 것보다 낫다. (Simple is better than complex.)복잡한 것이 난해한 것보다 낫다. (C
19일 전
포스팅 대표 그림
(펌) MATLAB vs PYTHON
게으른맽랩 lazy matlab
윤쌤 (https://open.kakao.com/o/gvKvlV2f) 원본: https://mres.uni-potsdam.de/wp-content/uploads/2025/03/trauth_pythonvsmatlab_vs3.pdf 일부 내용은 생략했습니다.
20일 전
포스팅 대표 그림
필요조건과 충분조건, statement와 expression
게으른맽랩 lazy matlab
https://math.stackexchange.com/questions/2985999/draw-a-venn-diagram-showing-an-event-along-with-its-sufficient-and-necessary-con 헷갈릴 때 쯤 한번씩 되뇌어 주어야 한다. 'A이면 B이다'라는 명제가 참일 때, A는 B이기 위한 충분조건이다.≡ A는 B를 만족시키기에 충분(sufficient)하다.≡ A이면 충분히 B라고 했지, A가 아니라고 해서 B가 아닌 것은 아니다. B는 A이기 위한 필요조건이다.≡ A를 만족하려면 우선 B를 만족시키는 것이 필요(necessary)하다.≡ B를 만족시키지 않으면 A 만족 여부는 볼 필요가 없다. 무언가를 충분히 준비했다는 것은 조금 남는 정도로 준비했다는 말과 동치이다. 조금 빼도 된다는 말이다. 따라서 A에서 조건을 조금 완화시켜도 B가 만족될 가능성이 있다. 무언가가 필요하다는 것은 거기서 조금이라도 빠지면 안 된다는 말과 동치이다. 따라서 B를 만족하지 않으면 A는 자동으로 만족하지 않는다. 예를 들어 아래와 같은 명제가 있다. β가 벡터공간 V의 기저라면 β의 원소들은 선형독립이다. 여기서 β의 원소들이 선형독립인 것은 β가 벡터공간의 기저이기 위한 필요조건이다. β의 원소들이 선형독립이 아니면 따져볼 것도 없다. β가 벡터공간의 기저인 것은 β의 원소들이 선형독립이기 위한 충분조건이다. 기저라면 정의에 의해 원소들이 선형독립이기 때문이다. 즉, 기저라는 사실은 선형독립이라는 성질을 주기에 충분하다. 다만 기저가 아니라고 해서 선형독립이 아닌 것은 아니다. 기저에서 원소를 몇 개 빼면 기저는 아니지만 여전히 선형독립이다. 한마디로, 충분조건은 다른 경우의 여지를 주며, 필요조건은 여지를 주지 않는다. 이걸 따져보기에 좋은 예시가 있다. 프로그래밍에서 statement는 어떤 동작을 발생시키는 코드를 말하고 expression은 값이 평가(evaluate)되는 코드를 말한다. 값이 평가되려면 당연히 동작이 발생해
한 달 전
포스팅 대표 그림
코랩에서 매트랩 돌리기
게으른맽랩 lazy matlab
https://www.youtube.com/watch?v=rhlBOJdmVkg 정확히는 코랩에서 매트랩을 띄우고 돌린다고 해야 맞는 표현이다. 후술하겠지만 코랩에서 MATLAB Online 환경을 띄우고 매트랩 엔진을 코랩에서 가져와서 쓸 수 있다. 아래 내용은 위 영상을 요약한 것이다. 먼저 코랩에 가서 터미널을 연다. mpm(matlab package manager)을 가져오고 매트랩 설치를 해야 하는데, 배치 파일을 위 영상의 제작자인 Yann Debray가 이미 만들어뒀다. 굳이 긁어서 붙일 필요는 없고, 아래를 실행하여 파일을 가져오면 된다. https://gist.githubusercontent.com/yanndebray/e267617c78a3f24c875cb57570bdd3b9/raw/1b9dce314770da627ecaf162bc1a3ecc5748a999/get_matlab_on_colab.sh 드라이브에 get_matlab_on_colab.sh 파일이 들어온 것을 확인하고 실행한다. 실행을 위해서는 권한 설정이 필요하다. chmod +x get_matlab_on_colab.sh 실행하면 설치가 시작된다. 시간이 몇 분 정도 걸린다. 인내심을 가지고 기다리자. 설치가 완료되면 아래처럼 뭔가 뜨는데 토큰을 복사하고 코랩 노트북을 열어서 아래를 실행한다. from google.colab import outputoutput.serve_kernel_port_as_window(3000, path='/') 경고는 가볍게 무시하고 로컬호스트를 클릭한다. 방금 그 토큰을 입력하고 제출한다. 이렇게 뜨면 제대로 되고 있는 것이다. 로그인 한다. 또 기다린다. 애간장이 탄다. 기다리다 보면 MATLAB Online처럼 생긴 환경이 뜬다. 아무거나 변수를 만들고, >> X = rand(3)X = 0.1622 0.5285 0.2630 0.7943 0.1656 0.6541 0.3112 0.6020 0.6892>> 매트랩 엔진 공유를 위해 아래를 실행한다. >> matl
한 달 전
포스팅 대표 그림
40585 = 4! + 0! + 5! + 8! + 5!
게으른맽랩 lazy matlab
https://www.linkedin.com/posts/fermatslibrary_in-1964-r-dougherty-discovered-the-largest-activity-7276628502387347456-B1v4 의심이 많은 나는 코드로 확인해본다. i = 0;while true i = i + 1; list = num2str(i) - '0'; if i == sum(factorial(list)) fprintf('%d = ', i) for n = 1:length(list)-1 fprintf('%d! + ', list(n)) end fprintf('%d!\n', list(end)) keyboard endend 1 = 1!2 = 2!145 = 1! + 4! + 5!40585 = 4! + 0! + 5! + 8! + 5! 이 이후로는 370만까지 나오지 않았다. 9!는 기껏해야 362880이므로 이 이후로는 나오지 않는다. 끗
4달 전
포스팅 대표 그림
윈도우 10 설정 및 제어판이 안 열릴 때
게으른맽랩 lazy matlab
unsplash 컴퓨터가 이상하면 제어판이나 설정부터 열어보는 것이 인지상정 ...인데 그것이 열리지 않으면 아무것도 할 수 없다. 딱 한 번 그런 적이 있는데, 그때 참고한 곳을 기록 차원으로 남겨둔다. 다행히 해결되었다. https://comformation.tistory.com/12 윈도우10 dism 복구 명령어, 파일 누락 또는 손상 문제를 해결하는 방법현재 이용 중인 컴퓨터에서 발생 중인 에러가 윈도우 자체에서 발생하는 문제라 생각된다면 다른 방법을 시도하기 전에 dism 복구 명령어를 이용하는 방법을 우선적으로 시도해보는 것이 좋다.comformation.tistory.com https://comformation.tistory.com/36 윈도우10 설정 안열림(앱 먹통, 실행 안됨) 문제, 해결 방법윈도우에서 자주 사용되는 대부분의 설정 값들은 설정 앱을 통해 변경해볼 수 있다. 그런데, 간혹 이런 것들의 제어를 위해 설정을 실행하려 해도 아예 열리지 않는 문제가 있는 경우가 있을 수comformation.tistory.com
6달 전
포스팅 대표 그림
OBS studio에서 녹화 일시 중지하고 싶을 때
게으른맽랩 lazy matlab
Setting - Output - Recording - Recording Quality 이것이 Same as Streaming으로 되어 있으면 녹화 중지가 보이지 않는다.이 옵션을 다른 옵션으로 바꾸면 녹화 중지가 나타난다. 참고한 곳: https://obsproject.com/forum/threads/what-happened-to-the-pause-recording-button.140031/
6달 전
포스팅 대표 그림
Basic properties of group homomorphism
게으른맽랩 lazy matlab
MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} }; Suppose $f: G \to G'$ is a group homomorphism, and $e$ and $e'$ are the identity elements of $G$ and $G'$, respectively. 1. Identity preservation: $f(e) = e'$ pf) $\forall g\in G, f(g) = f(e\,g) = f(e) f(g)$. Thus $f(e) = e'$. 2. Inverse preservation: $\forall g\in G, f(g^{-1}) = f(g)^{-1}$ pf) $\forall g\in G, e' = f(e) = f(g\,g^{-1}) = f(g) f(g^{-1})$. Thus $f(g)^{-1} = f(g^{-1})$. 3. Kernel is a normal subgroup: $\ker f \trianglelefteq G$ pf) $\forall h\in \ker f, \forall g\in G$, \begin{align}f(g\,h\,g^{-1}) &= f(g) f(h) f(g^{-1}) \\&= f(g) f(g^{-1}) = e'\end{align} Thus $ghg^{-1} \in \ker f$. 4. Image is a subgroup of G'. pf) (closedness) $\forall u, v \in f(G)$, let $f(x) = u, f(y) = v$. Then \begin{align}uv &= f(x) f(y) \\&= f(xy) \in f(G).\end{align} (identity element) $e' \in f(G)$ since $f(e) = e'$. (inverse element) Pick any $u\in f(G)$. Let $f(x) = u$. Then $$e' = f(e) = f(x\,x^{-1}) = f(x) f(x^{-1}) = u \, f(x^
6달 전
포스팅 대표 그림
넘파이와 파이썬의 정수 표현 범위
게으른맽랩 lazy matlab
https://www.thoughtco.com/bigger-than-a-trillion-1857463 아래 코드를 보자. >>> import numpy as np>>> np.cumprod(np.arange(1, 30))array([ 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, 20922789888000, 355687428096000, 6402373705728000, 121645100408832000, 2432902008176640000, -4249290049419214848, -1250660718674968576, 8128291617894825984, -7835185981329244160, 7034535277573963776, -1569523520172457984, -5483646897237262336, -5968160532966932480, -7055958792655077376])>>> 21!부터 제대로 계산이 되지 않았다. 오버플로우가 발생했음을 예상할 수 있다. 20!에다가 21을 곱해보자. >>> arr = np.cumprod(np.arange(1, 21))>>> arr[-1]*21<stdin>:1: RuntimeWarning: overflow encountered in scalar multiplynp.int64(-4249290049419214848)>>> 아하! 역시 오버플로우가 발생했다. 자료형은? >>> arr.dtypedtype('int64')>>> int64이다. 20!까지는 2^63-1을 넘기지 않다가 21!이 이 값을 넘겼으리라. 이제 같은 계산을 파이썬으로 해보자. >>> 2432902008176640000 * 2151090942171709440000>>> 오잉? 잘 된다. 왜 때문일까? 놀랍게도, 파이썬에서는 정수가 커지면 그 정수가 들어앉은 메모리를 늘려준다. 그래서 이론상 파이
6달 전
포스팅 대표 그림
[HORIZON] 전구의 불은 켜질까?
게으른맽랩 lazy matlab
MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} }; https://horizon.kias.re.kr/30621/ HORIZON의 12월 퍼즐이 재밌어 보여서 풀어봤다. 크리스마스 트리의 전구를 삼각형 모양으로 배치하고, 맨 아래층의 켜짐/꺼짐 상태로부터 맨 위층이 켜질지 꺼질지 예측하는 것이다. https://horizon.kias.re.kr/30621/ 전구는 위 그림처럼 아래 두 전구가 다르면 꺼지고 같으면 켜진다. 곰곰이 생각해보니 홀짝성 문제임을 알 수 있었다. (짝, 짝)이거나 (홀, 홀)이면 켜지고, 그 외에는 꺼진다. 즉, 합이 짝이면 켜지고 합이 홀이면 꺼진다. 문제는 다음과 같다. 2049층짜리 트리를 만들고, 1층 전구 상태를 원주율에 따라 결정한다. 1층의 n번째 전구는 원주율 소수점 아래 n번째 자리 숫자가 홀수이면 끄고 짝수이면 켠다. 이 트리의 맨 윗층 전구는 켜질까, 꺼질까? 원주율의 모든 숫자를 다 이용하도록 문제를 만들지는 않았을 것이다. 분명히 불변량 비슷한 무언가가 있을 것이다. 그리고 왜 하필 2049일까. 분명히 $2^n$과 연관이 있을 것이라 생각했다. 어차피 mod 2로 생각하는 것이니 0이면 켜지고 1이면 꺼지는 것으로 볼 수 있다. 이제 트리의 1층 전구 상태를 아래와 같이 두면, $$a_1 \vert a_2 \vert \cdots \vert a_n$$ 그 윗층은 아래와 같고, $$a_1+a_2 \vert a_2+a_3 \vert \cdots \vert a_{n-1}+a_n$$ 그 윗층은 아래와 같다. $$a_1+2a_2+a_3 \vert a_2+2a_3+a_4 \vert \cdots \vert a_{n-2}+2a_{n-1}+a_n$$ 계수가 파스칼의 삼각형이 된다. 따라서 꼭대기 층의 값은 아래와 같다. $$\sum_{k=0}^{n-1} \begin{pmatrix}n-1 \\ k\end{pmatrix} a_{k+1}$$ 주어진 n이 2049이므로 2049
6달 전